Function at 0x40a65c
Capabilities:
Encode data using xor

Disassembly:
push ebp
push ebx
push edi
push esi
sub esp, 0x934
mov ebp, dword [esp + 0x948]
mov eax, dword [esp + 0x954]
mov dword [esp + 0x930], eax
mov ax, word [0x490f06]
and eax, 0x5358
mov word [0x490f06], ax
mov ebx, 8
push ebx
push 0x6151
call fcn.004020cd
add esp, 8
mov esi, eax
mov eax, dword [0x485548]
dec eax
mov dword [0x485548], eax
xor eax, 0xb010
mov word [0x490ff0], ax
push esi
push ebp
call fcn.0043f330
add esp, 8
mov edi, eax
add dword [0x4889b4], 0x5046b089
push esi
push ebx
call fcn.0041c522
add esp, 8
dec dword [0x48e838]
mov eax, dword [0x48f438]
test edi, edi
je 0x40a807
add dword [0x48d444], 0x91c9ba27
xor dword [0x48595c], 0x4b9841d8
mov eax, dword [0x48f794]
mov ecx, dword [0x487164]
imul ecx, ecx, 0x4b95d438
or ecx, eax
xor dword [0x487ac0], ecx
mov eax, dword [0x48dd6c]
add eax, 0x6e9d0b41
or eax, 0xa61d1001
mov ecx, dword [0x48a670]
imul ecx, eax
mov dword [0x48a670], ecx
mov eax, dword [0x490458]
and eax, 0x60e620d0
mov ecx, dword [0x4881ac]
sub ecx, eax
mov dword [0x4881ac], ecx
mov ax, word [0x490c6a]
imul eax, eax, 0x182a
mov word [0x490c6a], ax
mov eax, dword [0x48fdc4]
imul eax, eax, 0x7b53ed5f
mov dword [0x48fdc4], eax
lea ecx, [esp + 0x534]
call fcn.0040fab2
mov eax, dword [0x484e6c]
imul eax, eax, 0x3014740f
mov dword [0x484e6c], eax
and dword [0x48d6c4], 0xbf894202
mov ax, word [0x49360c]
cwde
mov ecx, dword [0x48de2c]
xor ecx, 0xc7c7fde2
or ecx, eax
cmp ecx, 0x2f0e8d19
jg 0x40a7bb
mov word [0x494846], 0x7480
xor dword [0x48a0d8], 0x3247a855
mov eax, dword [0x484fac]
not eax
mov cx, word [0x49522e]
lea edx, [ecx - 1]
mov word [0x49522e], dx
movsx ecx, cx
and ecx, eax
mov eax, dword [0x489490]
lea edx, [eax + 1]
mov dword [0x489490], edx
cmp ecx, eax
jle 0x40a884
mov dword [0x48e2d8], 0xd4b585a6
jmp 0x40a895
mov ax, word [0x493eca]
xor eax, 0x6236
mov word [0x493eca], ax
cmp dword [esp + 0x958], 0
je 0x40ab60
mov dword [0x490a30], 0xdfefe97d
mov ecx, dword [esp + 0x950]
call fcn.004152b8
mov eax, dword [0x485fdc]
cmp eax, 0xc533608a
jg 0x40c221
mov eax, dword [0x48ece0]
lea ecx, [eax - 1]
mov dword [0x48ece0], ecx
mov ecx, dword [0x48d7dc]
imul ecx, eax
add ecx, 0x2d59627d
cmp ecx, 0xc8237245
jl 0x40c221
mov dword [0x48dec0], 0x978d99f6
jmp 0x40c221
mov ax, word [0x491c4e]
xor eax, 0x7fff
mov word [0x491c4e], ax
mov eax, dword [0x488e68]
xor eax, 0xa5a7b277
cmp eax, 0x11067220
jg 0x40a8b1
mov word [0x492e16], 0x1320
jmp 0x40a8bc
mov eax, dword [0x48ed58]
and dword [0x48f774], eax
mov eax, dword [0x486190]
imul eax, eax, 0xcf3f1620
mov dword [0x486190], eax
mov eax, dword [0x488550]
mov ax, word [0x493fe0]
cwde
not eax
imul eax, eax, 0xf7008275
mov ecx, dword [0x488448]
lea eax, [ecx + eax + 0xe63e37b]
mov dword [0x488448], eax
mov eax, dword [0x48a5fc]
cmp eax, 0x301ee276
jne 0x40a93c
mov eax, dword [0x48e024]
imul eax, eax, 0x9da3e798
mov ecx, dword [0x48b2fc]
lea edx, [ecx - 1]
mov dword [0x48b2fc], edx
xor eax, ecx
mov ecx, dword [0x48b8cc]
add ecx, 0x55866296
mov edx, dword [0x48a62c]
xor edx, ecx
cmp eax, edx
jge 0x40a93c
mov eax, dword [0x48fa00]
mov eax, dword [0x48ac1c]
call fcn.004311c4
mov ebx, eax
mov edi, edx
add ebx, 0x258
adc edi, 0
mov eax, dword [0x484ed0]
lea eax, [eax*4 + 0x724cbcc]
and eax, 0xec6833c
add dword [0x4900b0], eax
mov byte [esp + 0x558], 0
mov ax, word [0x491d26]
imul eax, eax, 0x16d8
mov word [0x491d26], ax
push ebp
call fcn.0043d560
add esp, 4
mov esi, eax
mov eax, dword [0x48b3fc]
and eax, 0xf5021e47
mov ecx, dword [0x48e2a0]
sub ecx, eax
mov dword [0x48e2a0], ecx
cmp esi, 0x80
jl 0x40a9d4
mov eax, dword [0x489bf0]
lea ecx, [eax + 1]
mov dword [0x489bf0], ecx
mov ecx, dword [0x48f084]
lea edx, [ecx - 1]
mov dword [0x48f084], edx
add ecx, eax
xor dword [0x48967c], ecx
jmp 0x40c176
mov dword [esp + 0x18], edi
and dword [0x48ddd0], 0xfdea01ad
lea eax, [esp + 0x868]
push ebp
push eax
call fcn.0043d5f0
add esp, 8
add dword [0x489f68], 0x40f17d74
mov eax, esi
add eax, 0xfffffffb
mov edi, esi
mov ebp, 0x50
mov ecx, dword [0x48816c]
mov edx, dword [0x48a154]
imul edx, ecx
shl edx, 4
xor edx, 0x5b77619a
cmp edx, 0x49000089
jg 0x40aa33
and dword [0x48adec], 0x42b1129a
movzx ecx, byte [esp + edi + 0x867]
cmp ecx, 0x3a
je 0x40aa59
dec edi
add dword [0x48d5ac], 0x387f0049
lea ecx, [edi + 1]
cmp ecx, eax
jg 0x40aa09
mov edi, esi
jmp 0x40aadf
add dword [0x48e938], 0xb57a5b69
lea eax, [esp + edi + 0x868]
mov byte [esp + edi + 0x867], 0
mov dword [0x48f1a4], 0x1be832a2
mov ecx, dword [0x489c04]
mov cx, word [0x4959a2]
imul ecx, ecx, 0xffffb466
mov word [0x4959a2], cx
push eax
call fcn.0043f2a5
add esp, 4
mov ebp, eax
mov eax, dword [0x485b44]
not eax
mov cx, word [0x491fba]
movsx ecx, cx
add ecx, eax
dec edi
cmp ecx, 0x66ed578
jne 0x40aadf
mov eax, dword [0x48a1f4]
mov ecx, dword [0x48d028]
add ecx, 0x84f96fb1
or ecx, eax
mov ax, word [0x494d5c]
imul eax, ecx
mov word [0x494d5c], ax
mov dword [esp + 0x1c], ebx
or dword [0x48643c], 0x38f1811e
test edi, edi
js 0x40ac4d
xor eax, eax
or dword [0x48daa8], 0x2f466a75
mov cl, byte [esp + eax + 0x868]
mov byte [esp + eax + 0x7a0], cl
mov ecx, dword [0x48c360]
imul ecx, ecx, 0xc6356da9
mov dword [0x48c360], ecx
movzx ecx, byte [esp + eax + 0x7a0]
cmp ecx, 0x2f
je 0x40abc8
mov ecx, dword [0x48d0c4]
dec ecx
mov dword [0x48d0c4], ecx
and ecx, 0x12702bdc
mov edx, dword [0x4900d8]
imul edx, ecx
mov dword [0x4900d8], edx
cmp eax, edi
lea eax, [eax + 1]
jl 0x40aaf7
jmp 0x40ac4d
mov eax, dword [0x4885dc]
add eax, 0xafd0c8e7
and dword [0x48b38c], eax
mov esi, dword [esp + 0x950]
push esi
push dword [esp + 0x950]
call fcn.0041bb4a
add esp, 8
mov ecx, dword [0x486014]
xor ecx, 0xc079b848
or dword [0x48c438], ecx
test eax, eax
jg 0x40abb8
xor dword [0x490880], 0xf2ba0f20
mov ecx, esi
call fcn.004152b8
mov dword [0x48b0a4], 0x8f5bcd0e
mov eax, dword [0x48d204]
and dword [0x48aca8], eax
jmp 0x40c221
mov ecx, dword [0x48ae58]
inc ecx
mov dword [0x48ae58], ecx
and dword [0x48b4a8], ecx
mov byte [esp + eax + 0x7a0], 0
mov cx, word [0x4941b8]
or ecx, 0xffff8110
mov dx, word [0x491f70]
and edx, ecx
mov word [0x491f70], dx
cmp eax, edi
jg 0x40ac3d
dec eax
lea ecx, [esp + 0x558]
mov edx, dword [0x485c88]
imul edx, edx, 0xa4008640
add edx, 0x2f2bca53
xor dword [0x48d1e8], edx
mov dl, byte [esp + eax + 0x869]
mov byte [ecx], dl
and dword [0x488928], 0x9f07a405
inc eax
inc ecx
cmp eax, edi
jl 0x40ac0c
mov eax, dword [0x48c970]
and eax, 0xac8f4e3
xor dword [0x48ae18], eax
mov eax, dword [0x48ab54]
imul eax, eax, 0xde40c937
mov dword [0x48ab54], eax
lea ebx, [esp + 0x558]
push ebx
call fcn.0043d560
add esp, 4
mov esi, eax
mov edi, dword [esp + 0x94c]
push edi
call fcn.0043d560
add esp, 4
add eax, esi
cmp eax, 0x200
jb 0x40ac97
and dword [0x4854d4], 0x36507062
jmp 0x40c176
mov ax, word [0x493adc]
imul eax, eax, 0x5dc1
mov word [0x493adc], ax
push edi
push ebx
call fcn.0043d600
add esp, 8
mov eax, dword [0x48ed88]
lea ecx, [eax - 1]
mov dword [0x48ed88], ecx
mov ecx, dword [0x48b654]
lea eax, [ecx + eax - 1]
cmp eax, 0x74f5d11c
je 0x40acf5
mov eax, dword [0x4899a8]
not eax
imul eax, eax, 0x274b22ee
and eax, 0xe34e9dde
cmp eax, 0xdbff43c8
jl 0x40acf5
xor dword [0x48db60], 0x5be905da
add dword [0x48eab8], 0x7f30ed72
push 5
push 0x482e
call fcn.004020cd
add esp, 8
mov esi, eax
mov eax, dword [0x489388]
not eax
mov cx, word [0x492d3a]
movsx ecx, cx
sub eax, ecx
xor eax, 0xa9072dce
mov ecx, dword [0x48efbc]
imul ecx, eax
mov dword [0x48efbc], ecx
lea ecx, [esp + 0x534]
push esi
call fcn.00401000
mov eax, dword [0x489628]
mov ecx, dword [0x487be4]
lea edx, [ecx + 1]
mov dword [0x487be4], edx
lea eax, [ecx + eax + 1]
cmp eax, 0xd89c061a
mov edi, dword [esp + 0x950]
jl 0x40ad93
mov ax, word [0x491476]
cwde
add eax, 0xc3697b5f
or eax, 0x4940f9ce
mov ecx, dword [0x488260]
add ecx, 0x2ab6ce1c
cmp eax, ecx
jge 0x40ad9d
inc dword [0x48afc8]
jmp 0x40ad9d
add dword [0x48a124], 0xa200006
push esi
push 5
call fcn.0041c522
add esp, 8
mov eax, dword [0x486a0c]
mov ecx, dword [0x48a040]
lea edx, [ecx - 1]
mov dword [0x48a040], edx
xor edx, edx
inc edx
sub edx, ecx
lea eax, [eax + edx + 0x20c4]
mov cx, word [0x495934]
xor ecx, eax
mov word [0x495934], cx
mov ecx, edi
call fcn.00417552
xor edx, edx
test eax, eax
lea ebx, [esp + 0x558]
je 0x40afe5
mov ax, word [0x491da4]
imul eax, eax, 0xffff9a7c
mov word [0x491da4], ax
mov eax, 0xc
push eax
push 0xbfd
call fcn.004020cd
add esp, 8
mov esi, eax
mov eax, dword [0x48f688]
mov ecx, dword [0x48ab1c]
sar ecx, 0xa
xor ecx, 0xe003b187
mov edx, dword [0x48f81c]
or ecx, eax
or ecx, edx
mov dword [0x48f81c], ecx
lea ebx, [esp + 0xd8]
mov ecx, ebx
push esi
call fcn.00408802
mov ecx, edi
push 0
push ebx
call fcn.00405abc
mov edi, eax
mov ecx, ebx
call fcn.0041b4e0
mov eax, dword [0x48f0f4]
imul eax, eax, 0x5e04023
mov dword [0x48f0f4], eax
push esi
mov eax, 0xc
push eax
call fcn.0041c522
add esp, 8
mov eax, dword [0x4887a0]
mov ecx, dword [0x48fb84]
cmp eax, ecx
jl 0x40ae95
add dword [0x48bf54], 0xa54966b8
xor edx, edx
test edi, edi
mov esi, dword [esp + 0x950]
lea ebx, [esp + 0x558]
jne 0x40afc9
and dword [0x48d994], 0xcc273769
mov eax, dword [0x48da98]
lea ecx, [eax + 1]
mov dword [0x48da98], ecx
and eax, 0x325f5d57
or dword [0x48b1b0], eax
mov ecx, esi
push 0
call fcn.0041f856
mov ecx, esi
push 0xb
push eax
call fcn.0040866c
mov eax, dword [0x484cfc]
shl eax, 7
and eax, 0x65cc9880
mov cx, word [0x493750]
movsx ecx, cx
add ecx, 0x2a200142
cmp eax, ecx
jne 0x40af23
mov eax, dword [0x489ad8]
lea ecx, [eax - 1]
mov dword [0x489ad8], ecx
and eax, 0xceb3fe99
cmp eax, 0x4e000662
jl 0x40af23
mov eax, dword [0x489b08]
push 6
push 0x632d
call fcn.004020cd
add esp, 8
mov esi, eax
mov eax, dword [0x48d0ac]
cmp eax, 0xdbac4d54
je 0x40af70
mov ax, word [0x493a40]
cwde
not eax
mov ecx, dword [0x488ad0]
imul ecx, ecx, 0xe545ec19
add ecx, eax
cmp ecx, 0xd50611e8
jg 0x40af70
mov ax, word [0x4939fe]
xor eax, 0xbfaf
mov word [0x4939fe], ax
lea ecx, [esp + 0x534]
push esi
call fcn.00401000
mov eax, dword [0x4872b4]
not eax
mov ecx, dword [0x485b34]
imul ecx, ecx, 0x5951049
add ecx, eax
cmp ecx, 0x5f994887
jl 0x40afae
mov ax, word [0x491e5a]
inc eax
mov word [0x491e5a], ax
cwde
or dword [0x4884e8], eax
push esi
push 6
call fcn.0041c522
add esp, 8
mov eax, dword [0x48c224]
shl eax, 9
mov dword [0x48de50], eax
xor edx, edx
inc edx
mov eax, dword [0x489958]
add eax, eax
xor eax, 0xe76b
mov cx, word [0x494764]
or ecx, eax
mov word [0x494764], cx
mov dword [esp + 0x14], edx
add dword [0x4897e8], 0xde003f15
lea edi, [esp + 0xc4]
mov ecx, edi
push ebx
mov esi, edx
call fcn.004174ec
lea ecx, [esp + 0x534]
push edi
call fcn.0042f56c
mov ecx, edi
call fcn.0041b4e0
or dword [0x488618], 0xf69bbbb6
mov eax, 0x32
push eax
push 0x69a5
call fcn.004020cd
add esp, 8
mov edi, eax
mov eax, dword [0x485480]
lea ecx, [eax + 1]
mov dword [0x485480], ecx
mov cx, word [0x490dc2]
imul ecx, eax
mov word [0x490dc2], cx
lea ebx, [esp + 0xb0]
mov ecx, ebx
push edi
call fcn.004174ec
lea ecx, [esp + 0x534]
push ebx
call fcn.0042f56c
mov ecx, ebx
call fcn.0041b4e0
mov eax, dword [0x4890d0]
imul eax, eax, 0xa3d7283e
mov dword [0x4890d0], eax
push edi
mov eax, 0x32
push eax
call fcn.0041c522
add esp, 8
mov eax, dword [0x48ed44]
imul eax, eax, 0x9f871b5a
mov cx, word [0x495880]
lea edx, [ecx + 1]
mov word [0x495880], dx
movsx ecx, cx
sub eax, ecx
and dword [0x48a1c4], eax
lea eax, [esp + 0x7a0]
lea edi, [esp + 0x9c]
mov ecx, edi
push eax
call fcn.004174ec
lea ecx, [esp + 0x534]
push edi
call fcn.0042f56c
mov ecx, edi
call fcn.0041b4e0
and dword [0x48e9a4], 0x28f2119c
test esi, esi
je 0x40b219
add dword [0x484fac], 0x90ca10cb
mov esi, 0x44
push esi
push 0x60fb
call fcn.004020cd
add esp, 8
mov ebx, eax
add dword [0x48b4e4], 0x7fb543a0
lea edi, [esp + 0x88]
mov ecx, edi
push ebx
call fcn.004174ec
lea ecx, [esp + 0x534]
push edi
call fcn.0042f56c
mov ecx, edi
call fcn.0041b4e0
mov eax, dword [0x48ccb8]
imul eax, eax, 0x7d07c4f0
or dword [0x48e8c4], eax
mov eax, 3
push eax
push 0x7768
call fcn.004020cd
add esp, 8
mov edi, eax
mov eax, dword [0x4856b0]
dec eax
mov dword [0x4856b0], eax
mov cx, word [0x494b46]
sub ecx, eax
mov word [0x494b46], cx
push ebx
push esi
call fcn.0041c522
add esp, 8
mov eax, dword [0x48fff4]
add eax, 0x70b5f18
xor eax, 0x88825533
or dword [0x489b78], eax
mov ecx, dword [esp + 0x950]
call fcn.00417552
lea esi, [esp + 0xec]
push eax
push edi
push esi
call fcn.004043bc
add esp, 0xc
mov ax, word [0x49651e]
xor eax, 0x625d
mov word [0x49651e], ax
push edi
mov eax, 3
push eax
call fcn.0041c522
add esp, 8
xor dword [0x48624c], 0xc752e3e
lea edi, [esp + 0x74]
mov ecx, edi
push esi
call fcn.004174ec
lea ecx, [esp + 0x534]
push edi
call fcn.0042f56c
mov ecx, edi
call fcn.0041b4e0
mov dword [0x486dd8], 0x5cc88b45
mov eax, dword [0x48e018]
imul eax, eax, 0xd47a399d
mov dword [0x48e018], eax
mov ebx, 5
push ebx
push 0x2bdc
call fcn.004020cd
add esp, 8
mov esi, eax
or dword [0x48d448], 0xcd2cca6d
lea edi, [esp + 0x60]
mov ecx, edi
push esi
call fcn.004174ec
lea ecx, [esp + 0x534]
push edi
call fcn.0042f56c
mov ecx, edi
call fcn.0041b4e0
mov ax, word [0x49688a]
cwde
mov ecx, 0x3cd208f7
sub ecx, eax
xor ecx, 0x6535975c
mov dword [0x48e558], ecx
push esi
push ebx
call fcn.0041c522
add esp, 8
mov ax, word [0x495888]
xor eax, 0xb3fe
mov word [0x494934], ax
cmp dword [esp + 0x14], 0
mov edi, dword [esp + 0x950]
mov edx, edi
je 0x40b2f3
mov ax, word [0x493c8c]
and eax, 0x5f1d
mov word [0x493c8c], ax
lea ecx, [esp + 0x534]
push edx
call fcn.0042f56c
mov eax, dword [0x48c974]
lea ecx, [eax - 1]
mov dword [0x48c974], ecx
imul eax, eax, 0x2e91f170
mov ecx, dword [0x489744]
and ecx, eax
and ecx, 0xa83d7d80
mov dword [0x489744], ecx
mov eax, dword [0x48bb5c]
lea ecx, [eax - 1]
mov dword [0x48bb5c], ecx
add eax, 0x8a8a552a
cmp eax, 0x40040042
jg 0x40b32b
mov eax, dword [0x488e2c]
cmp eax, 0xc0497249
jl 0x40b32b
mov eax, dword [0x48efc8]
add eax, eax
xor eax, 0x8d957a16
add dword [0x48d58c], eax
lea eax, [esp + 0x7a0]
push eax
call dword [0x484a30]
mov cx, word [0x493ac4]
movsx ecx, cx
mov edx, 0x7535bbeb
sub edx, ecx
or edx, 0xdec23ea5
mov ecx, dword [0x487fac]
imul ecx, edx
mov dword [0x487fac], ecx
test eax, eax
je 0x40b66a
mov cx, word [0x4928fa]
inc ecx
mov word [0x4928fa], cx
mov dx, word [0x493c48]
or edx, ecx
or edx, 0xe87a
mov word [0x493c48], dx
xor ecx, ecx
mov dword [esp + 0x554], ecx
mov dword [esp + 0x550], ecx
mov dword [esp + 0x54c], ecx
mov dword [esp + 0x548], ecx
mov cx, word [0x496720]
movsx ecx, cx
sar ecx, 0xa
mov dword [0x48ae38], ecx
mov word [esp + 0x548], 2
mov ecx, dword [0x48dcd4]
sar ecx, 7
mov edx, dword [0x48f9f0]
add edx, 0xeeca749b
cmp ecx, edx
jle 0x40b3ea
and dword [0x488b8c], 0xa9436ced
mov esi, dword [0x484a38]
mov ecx, dword [0x484a3c]
mov eax, dword [eax + 0xc]
mov eax, dword [eax]
mov eax, dword [eax]
mov dword [esp + 0x5c], eax
sub esp, 4
mov eax, dword [esp + 0x60]
mov dword [esp], eax
call ecx
push eax
call esi
mov dword [esp + 0x54c], eax
mov eax, dword [0x48a5a0]
shl eax, 4
cmp eax, 0x58d1f7e6
jg 0x40b45e
mov eax, dword [0x485580]
lea ecx, [eax + 1]
mov dword [0x485580], ecx
and eax, 0xf5c3e7fb
xor eax, 0x9e211a33
mov cx, word [0x49365c]
dec ecx
mov word [0x49365c], cx
movsx ecx, cx
cmp eax, ecx
jg 0x40b45e
xor dword [0x487034], 0x85c00b51
sub esp, 4
movzx eax, bp
mov dword [esp], eax
call dword [0x484a34]
mov word [esp + 0x54a], ax
add dword [0x490198], 0x4be49adb
cmp dword [esp + 0x930], 0
je 0x40b684
mov eax, dword [0x48a4e8]
not eax
mov ecx, dword [0x486524]
imul ecx, eax
mov eax, dword [0x484f1c]
lea edx, [eax + 1]
mov dword [0x484f1c], edx
cmp ecx, eax
jg 0x40b4bf
mov eax, dword [0x48e700]
imul eax, eax, 0x1df9c6c9
mov dword [0x48e700], eax
mov eax, 0x10624dd3
mul dword [esp + 0x930]
shr edx, 6
lea eax, [esp + 0x548]
push edx
push eax
call fcn.00415402
add esp, 8
mov edx, dword [0x48d510]
xor edx, 0xc3a5bced
mov ecx, dword [0x48f558]
dec ecx
mov dword [0x48f558], ecx
imul ecx, ecx, 0x87a82a49
cmp edx, ecx
jl 0x40b521
mov edx, dword [0x48a794]
lea ecx, [edx + 1]
mov dword [0x48a794], ecx
mov cx, word [0x492182]
or ecx, edx
mov word [0x492182], cx
test eax, eax
js 0x40bdba
mov ebp, eax
mov eax, dword [0x48ade4]
mov ecx, dword [0x48f724]
imul ecx, eax
cmp ecx, 0xcd691396
jne 0x40b564
mov ax, word [0x491552]
dec eax
mov word [0x491552], ax
cwde
mov cx, word [0x4916f6]
movsx ecx, cx
not ecx
imul ecx, eax
and dword [0x4902cc], ecx
mov esi, 4
lea edi, [esp + 0x930]
mov ebx, 0xffff
push esi
push edi
push 0x1006
push ebx
mov dword [esp + 0x20], ebp
push ebp
call dword [0x484a50]
mov eax, dword [0x48c0d0]
or eax, 0x4badaafa
mov ecx, dword [0x48eb38]
imul ecx, eax
mov dword [0x48eb38], ecx
push esi
push edi
push 0x1005
push ebx
push ebp
call dword [0x484a50]
mov eax, dword [0x48b648]
imul eax, eax, 0x7b8edb9f
mov dword [0x48b648], eax
mov eax, dword [0x48fc40]
sar eax, 3
add eax, 0x2f00b560
cmp eax, 0xa7c497b
jl 0x40b5de
add dword [0x48c694], 0x3009fb52
mov ebx, dword [0x484a4c]
lea esi, [esp + 0x534]
mov ecx, esi
call fcn.00417552
mov edi, eax
mov ecx, esi
call fcn.0042ecf0
push 0
push edi
push eax
push dword [esp + 0x1c]
call ebx
mov edi, eax
mov ax, word [0x494ef6]
add eax, 0x788
mov word [0x494ef6], ax
mov ecx, esi
call fcn.00417552
cmp edi, eax
jae 0x40b6bc
mov eax, dword [0x48f66c]
shl eax, 0xa
add eax, 0xe7d18ff7
or eax, 0x5d06cc79
cmp eax, 0x7360c907
jl 0x40b661
mov eax, dword [0x48c900]
sar eax, 2
or eax, 0x1a7d024f
xor eax, 0x450244b0
mov ecx, dword [0x48b614]
imul ecx, eax
mov dword [0x48b614], ecx
mov esi, dword [esp + 0x10]
jmp 0x40c156
mov eax, dword [0x48de68]
inc dword [0x48a554]
add dword [0x48d94c], 0x6e6b2ee6
jmp 0x40c176
mov eax, dword [0x4894f4]
mov cx, word [0x491606]
movsx ecx, cx
sar ecx, 4
cmp eax, ecx
jge 0x40bdd0
mov eax, dword [0x48a360]
xor eax, 0xa320
mov ecx, dword [0x4856c0]
or ecx, eax
mov word [0x492adc], cx
jmp 0x40bde2
mov eax, dword [0x48cbc0]
mov cx, word [0x492ace]
add ecx, 0xa119
or ecx, eax
mov ax, word [0x495170]
sub eax, ecx
mov word [0x495170], ax
mov edi, dword [esp + 0x950]
mov ecx, edi
call fcn.004152b8
mov ax, word [0x4925a0]
cwde
add eax, 0x49b33edb
mov ecx, dword [0x48d810]
lea edx, [ecx + 1]
mov dword [0x48d810], edx
cmp eax, ecx
jle 0x40b715
xor dword [0x48b3c8], 0xcf3f36a3
xor ebp, ebp
dec ebp
mov dword [esp + 0xc], 0
mov dword [esp + 0x14], ebp
mov ebx, dword [esp + 0x958]
jmp 0x40b737
add dword [0x48b654], 0x58f543a5
mov ax, word [0x493936]
cwde
sar eax, 0xa
xor eax, 0x140774b0
cmp eax, 0x7623eb34
jg 0x40b773
mov ax, word [0x4966ca]
inc eax
mov word [0x4966ca], ax
cwde
add eax, 0xecec56a3
cmp eax, 0x8ec8bb60
jg 0x40b77d
and dword [0x48b400], 0x3fec84a7
jmp 0x40b77d
add dword [0x48f0d0], 0xbef5b7af
push 0
push 0x400
lea eax, [esp + 0xf4]
push eax
push dword [esp + 0x1c]
call dword [0x484a44]
mov esi, eax
or dword [0x48a384], 0x5148dacd
test esi, esi
jle 0x40be9a
push dword [esp + 0x18]
push dword [esp + 0x20]
call fcn.00423c72
add esp, 8
test eax, eax
jne 0x40be9a
mov eax, dword [0x488148]
lea ecx, [eax + 1]
mov dword [0x488148], ecx
mov cx, word [0x494fb4]
lea eax, [eax + ecx + 0x431f]
mov word [0x494fb4], ax
mov ecx, edi
call fcn.00417552
add eax, esi
mov ecx, edi
push 0
push eax
call fcn.004158f0
mov eax, dword [0x48d420]
mov ax, word [0x49152a]
cwde
mov ecx, dword [0x485420]
shl eax, 9
neg eax
lea eax, [ecx + eax - 0x6edc9df]
mov dword [0x485420], eax
mov ecx, edi
call fcn.0042f47c
test eax, eax
je 0x40bf09
and dword [0x48d3f0], 0xdd045e29
mov ecx, edi
push esi
lea eax, [esp + 0xf0]
push eax
call fcn.0041e90c
mov eax, dword [0x48f7b4]
mov ecx, 0x4627fb50
sub ecx, eax
and dword [0x4857e4], ecx
test ebp, ebp
jns 0x40baac
mov ax, word [0x492fbc]
mov eax, dword [0x488860]
inc eax
mov dword [0x488860], eax
mov cx, word [0x491f00]
sub ecx, eax
mov word [0x491f00], cx
push 5
push 0x2bdc
call fcn.004020cd
add esp, 8
mov esi, eax
mov eax, dword [0x4899c8]
add eax, 0x3f49963b
or eax, 0xb9d9ba29
mov cx, word [0x493e7a]
movsx ecx, cx
mov edx, 0xa8fbcc43
sub edx, ecx
cmp eax, edx
jge 0x40b8d8
mov eax, dword [0x48ae8c]
mov ecx, dword [0x48e510]
shl ecx, 4
xor ecx, eax
cmp ecx, 0xabd2ffb3
jg 0x40b8d8
mov eax, dword [0x48fd5c]
not eax
and dword [0x48716c], eax
lea ebx, [esp + 0x48]
mov ecx, ebx
push esi
call fcn.00408802
mov ecx, edi
push 0
push ebx
call fcn.00405abc
mov ebp, eax
mov ecx, ebx
call fcn.0041b4e0
xor dword [0x4905fc], 0xa41d4cbb
push esi
push 5
call fcn.0041c522
add esp, 8
xor dword [0x488f68], 0x45ae1179
test ebp, ebp
mov ebx, dword [esp + 0x958]
js 0x40baa2
mov eax, dword [0x48c4bc]
shl eax, 7
cmp eax, 0x8c323304
jg 0x40b94b
mov eax, dword [0x48ffd0]
mov ecx, dword [0x48d944]
lea eax, [eax + ecx - 0x3aaad3fd]
mov dword [0x48d944], eax
mov eax, dword [0x48e804]
sar eax, 8
imul eax, eax, 0x1fefe482
cmp eax, 0xb9cca753
jg 0x40b96c
and dword [0x488e44], 0xa1239155
jmp 0x40b987
mov eax, dword [0x486634]
mov cx, word [0x495684]
and ecx, eax
and ecx, 0xc250
mov word [0x495684], cx
add ebp, 4
push edi
call fcn.0040c78e
add esp, 4
mov dword [esp + 0x14], eax
mov ecx, dword [0x48f56c]
imul ecx, ecx, 0x8d406ea0
mov dword [0x48f56c], ecx
test eax, eax
jns 0x40ba73
mov eax, dword [0x485e5c]
inc eax
mov dword [0x485e5c], eax
mov ecx, dword [0x486898]
dec ecx
mov dword [0x486898], ecx
and ecx, eax
and dword [0x4888e4], ecx
push 0xb
push 0x1894
call fcn.004020cd
add esp, 8
mov esi, eax
mov eax, dword [0x48dcf4]
cmp eax, 0x790c0803
jl 0x40ba0b
mov eax, dword [0x487104]
lea ecx, [eax - 1]
mov dword [0x487104], ecx
mov ecx, dword [0x48b9b8]
imul ecx, eax
mov dword [0x48b9b8], ecx
lea ebx, [esp + 0x34]
mov ecx, ebx
push esi
call fcn.00408802
mov ecx, edi
push 0
push ebx
call fcn.00405abc
mov dword [esp + 8], eax
mov ecx, ebx
call fcn.0041b4e0
mov word [0x493cf2], 0xb28c
push esi
push 0xb
call fcn.0041c522
add esp, 8
mov ax, word [0x495e98]
or eax, 0xffad
mov word [0x495e98], ax
cmp dword [esp + 8], 0
jns 0x40bfd7
mov eax, dword [0x48b328]
dec eax
mov dword [0x48b328], eax
mov dword [0x48fb44], eax
mov ebx, dword [esp + 0x958]
mov eax, dword [0x48b974]
lea ecx, [eax + 1]
mov dword [0x48b974], ecx
cmp eax, 0xdbedffdc
jg 0x40baa2
mov eax, dword [0x48f92c]
xor eax, 0x16c
mov cx, word [0x493ec4]
and ecx, eax
mov word [0x493ec4], cx
xor dword [0x48d370], 0x16a30e10
mov ax, word [0x494e08]
cwde
add eax, 0x62dd9ded
mov ecx, dword [0x48ddc8]
or ecx, eax
or dword [0x4867a8], ecx
cmp dword [esp + 0x14], 0
js 0x40bb59
mov eax, dword [0x485f44]
lea ecx, [eax + 1]
mov dword [0x485f44], ecx
mov ecx, dword [0x4865d0]
inc ecx
mov dword [0x4865d0], ecx
sub eax, ecx
cmp eax, 0x9f132343
jne 0x40bb32
mov eax, dword [0x48a538]
lea ecx, [eax - 1]
mov dword [0x48a538], ecx
or eax, 0x774bc5d8
xor eax, 0x88843227
mov ecx, dword [0x48ac48]
lea edx, [ecx - 1]
mov dword [0x48ac48], edx
cmp eax, ecx
jge 0x40bb3c
mov eax, dword [0x4884f4]
or eax, 0xbd4cb7c9
and dword [0x48b094], eax
jmp 0x40bb3c
or dword [0x48babc], 0x4281a380
mov ecx, edi
call fcn.00417552
sub eax, ebp
cmp eax, dword [esp + 0x14]
jae 0x40bf18
add dword [0x4867ec], 0xa456df99
mov eax, dword [0x486558]
imul eax, eax, 0x950ace89
mov dword [0x486558], eax
test ebx, ebx
je 0x40bd54
mov eax, dword [esp + 0xc]
and al, 1
jne 0x40bd54
mov ax, word [0x491fe4]
lea ecx, [eax - 1]
mov word [0x491fe4], cx
cwde
xor eax, 0x79b95b3f
mov ecx, dword [0x48c294]
imul ecx, eax
mov dword [0x48c294], ecx
mov ecx, edi
call fcn.00417552
cmp eax, 0x4001
jb 0x40bd44
mov dword [0x48b158], 0x30273ee6
mov eax, dword [0x48ee6c]
or eax, 0x80840050
cmp eax, 0xcaca19f8
ja 0x40bbf4
mov ax, word [0x49615a]
dec eax
mov word [0x49615a], ax
mov eax, dword [0x48b208]
lea ecx, [eax + 1]
mov dword [0x48b208], ecx
add eax, 0x99ada07a
mov dword [0x48a890], eax
lea ecx, [esp + 0x20]
push edi
call fcn.00420472
mov eax, dword [0x486604]
imul eax, eax, 0x46aff17e
cmp eax, 0x1beaed62
jg 0x40bc33
mov eax, dword [0x48689c]
lea ecx, [eax - 1]
mov dword [0x48689c], ecx
mov ecx, dword [0x48862c]
shl ecx, 4
lea eax, [eax + ecx + 0x2e98e94]
mov dword [0x48ae40], eax
test ebp, ebp
js 0x40bca6
mov eax, dword [0x48c5b8]
lea ecx, [eax - 1]
mov dword [0x48c5b8], ecx
or eax, 0x5e6d
mov cx, word [0x4955fc]
sub ecx, eax
mov word [0x4955fc], cx
lea esi, [esp + 0x20]
mov ecx, esi
push 0
call fcn.0041f856
mov ecx, esi
push ebp
push eax
call fcn.0040866c
mov eax, dword [0x48b050]
inc eax
mov dword [0x48b050], eax
cmp eax, 0x1b206a3d
jne 0x40bca6
mov eax, dword [0x48cb70]
lea ecx, [eax - 1]
mov dword [0x48cb70], ecx
mov cx, word [0x494940]
imul ecx, eax
imul eax, ecx, 0x5f391d10
mov word [0x494940], ax
mov ax, word [0x4950d0]
add eax, 0xffffd008
mov word [0x4950d0], ax
lea eax, [esp + 0x7a0]
push eax
push ebx
lea eax, [esp + 0x28]
push eax
call fcn.0040da26
add esp, 0xc
test eax, eax
je 0x40bf70
mov eax, dword [0x48f018]
cmp eax, 0x95e3e5bc
jl 0x40bd0b
mov eax, dword [0x48dc34]
imul eax, eax, 0xa126ddc2
or eax, 0x23891ce7
mov ecx, dword [0x489530]
sar ecx, 0xa
and ecx, 0xe17bfe08
cmp eax, ecx
jl 0x40bd35
mov eax, dword [0x48b950]
jmp 0x40bd35
mov eax, dword [0x48f89c]
lea ecx, [eax - 1]
mov dword [0x48f89c], ecx
mov ecx, dword [0x485da4]
lea edx, [ecx - 1]
mov dword [0x485da4], edx
xor edx, edx
inc edx
sub edx, ecx
sub edx, eax
add dword [0x48f3d8], edx
lea ecx, [esp + 0x20]
call fcn.0041b4e0
mov al, 1
mov dword [esp + 0xc], eax
mov ax, word [0x494ed4]
cwde
shl eax, 6
xor dword [0x484dd8], eax
mov eax, dword [0x48d40c]
or eax, 0x55b8
mov cx, word [0x495ef8]
add ecx, eax
mov word [0x495ef8], cx
cmp dword [esp + 0x930], 0x3af1
jne 0x40b72d
mov eax, dword [0x48d344]
add dword [0x48a20c], eax
mov ecx, edi
call fcn.00417552
cmp eax, 0x500001
jae 0x40bf40
mov eax, dword [0x48fd60]
lea ecx, [eax + 1]
mov dword [0x48fd60], ecx
add eax, 0xa80fc6bd
xor dword [0x48dfe8], eax
jmp 0x40b72d
mov ax, word [0x491de0]
and eax, 0x79f9
mov word [0x491de0], ax
jmp 0x40c176
mov ax, word [0x491f92]
imul eax, eax, 0xffffde36
mov word [0x491f92], ax
push 6
push 1
push 2
call dword [0x484a54]
mov esi, eax
mov dword [0x48f5a0], 0x4702765f
cmp esi, 0xffffffff
je 0x40be73
mov eax, dword [0x48fd78]
shr eax, 2
add eax, 0x222d
mov cx, word [0x494f20]
add ecx, ecx
and ecx, eax
mov ax, word [0x494662]
sub eax, ecx
mov word [0x494662], ax
lea eax, [esp + 0x548]
push 0x10
push eax
push esi
call dword [0x484a2c]
cmp eax, 0xffffffff
je 0x40bed3
mov eax, dword [0x486248]
cmp eax, 0xafeef7b8
jg 0x40bf00
mov dword [esp + 0x10], esi
mov eax, dword [0x48a710]
inc eax
mov dword [0x48a710], eax
cmp eax, 0xf2095c2f
jg 0x40b5c0
mov eax, dword [0x4882dc]
jmp 0x40b5c0
mov eax, dword [0x489e10]
lea ecx, [eax - 1]
mov dword [0x489e10], ecx
add eax, 0x5e3eac21
mov ecx, dword [0x48eaf4]
imul ecx, eax
mov dword [0x48eaf4], ecx
jmp 0x40c176
mov eax, dword [0x4866bc]
mov cx, word [0x494dc4]
movsx ecx, cx
add ecx, 0x4faf0387
or ecx, eax
cmp ecx, 0x7acf8992
jg 0x40c005
mov ax, word [0x491f20]
or eax, 0x224
mov word [0x491f20], ax
jmp 0x40c005
mov eax, dword [0x48ad84]
lea ecx, [eax + 1]
mov dword [0x48ad84], ecx
mov ecx, dword [0x49004c]
lea eax, [ecx + eax + 1]
mov cx, word [0x492ffa]
add ecx, eax
mov word [0x492ffa], cx
jmp 0x40c156
mov dword [esp + 0x10], esi
jmp 0x40b5c0
or dword [0x489c4c], 0x3728497e
jmp 0x40c005
mov eax, dword [0x48a728]
add eax, 0x894e8ec0
xor eax, 0x78046b6e
cmp eax, 0xd9ea66c3
jg 0x40c005
mov word [0x4951ea], 0x193f
jmp 0x40c005
mov eax, dword [0x4876e4]
add eax, 0x4d92e841
mov ecx, dword [0x48cec4]
lea edx, [ecx + 1]
mov dword [0x48cec4], edx
cmp eax, ecx
je 0x40c005
add dword [0x48db78], 0xd175183e
jmp 0x40c005
mov ax, word [0x49585a]
and eax, 0x836d
mov word [0x49585a], ax
mov ax, word [0x49519a]
dec eax
mov word [0x49519a], ax
mov ecx, edi
call fcn.004152b8
mov eax, dword [0x4857c8]
lea ecx, [eax - 1]
mov dword [0x4857c8], ecx
mov ecx, 0x5613222b
sub ecx, eax
or ecx, 0x9bc2fa19
and dword [0x48dcf8], ecx
lea ecx, [esp + 0x20]
call fcn.0041b4e0
mov eax, dword [0x489e64]
imul eax, eax, 0x800a0004
mov dword [0x489e64], eax
mov al, 1
mov dword [esp + 0xc], eax
jmp 0x40c04d
mov eax, dword [0x485200]
lea ecx, [eax + 1]
mov dword [0x485200], ecx
and eax, 0xd8ca8466
xor eax, 0x89feca
mov ecx, dword [0x48d594]
imul ecx, eax
mov dword [0x48d594], ecx
mov ebx, dword [esp + 0x958]
mov eax, dword [0x489e64]
imul eax, eax, 0x800a0004
mov dword [0x489e64], eax
test ebp, ebp
js 0x40c04d
mov ax, word [0x493da4]
imul eax, eax, 0x750
mov word [0x493da4], ax
mov ecx, edi
push 0
call fcn.0041f856
mov ecx, edi
push ebp
push eax
call fcn.0040866c
mov eax, dword [0x48dd24]
imul eax, eax, 0xa550164e
mov dword [0x48dd24], eax
mov esi, dword [esp + 0x10]
mov eax, dword [0x48f3bc]
mov ecx, 0x39d29541
sub ecx, eax
mov eax, dword [0x48f95c]
dec eax
mov dword [0x48f95c], eax
or eax, ecx
mov cx, word [0x4958a0]
add ecx, eax
mov word [0x4958a0], cx
test ebx, ebx
je 0x40c110
mov eax, dword [esp + 0xc]
and al, 1
jne 0x40c110
mov eax, dword [0x488324]
cmp eax, 0x8c053880
jg 0x40c0af
mov eax, dword [0x48cfcc]
imul eax, eax, 0xdf442db1
xor eax, 0x3d0876c0
mov dword [0x48fdac], eax
lea eax, [esp + 0x7a0]
push eax
push ebx
push edi
call fcn.0040da26
add esp, 0xc
test eax, eax
jne 0x40c0ee
mov ax, word [0x493e92]
add eax, 0x21a3
mov word [0x493e92], ax
mov ecx, edi
call fcn.004152b8
mov ax, word [0x49692e]
xor eax, 0x3fe7
mov word [0x49692e], ax
mov eax, dword [0x48a968]
xor eax, 0x1461cc11
cmp eax, 0x47191da5
jl 0x40c110
mov ax, word [0x4930e6]
or eax, 0x5d98
mov word [0x4930e6], ax
mov eax, dword [0x48f244]
lea ecx, [eax - 1]
mov dword [0x48f244], ecx
or eax, 0xa3a5b851
mov cx, word [0x4960f2]
inc ecx
mov word [0x4960f2], cx
movsx ecx, cx
add ecx, 0x7351f5a1
mov edx, dword [0x48e804]
xor edx, ecx
cmp eax, edx
jne 0x40c156
mov eax, dword [0x48d994]
and eax, 0x634d2c7f
mov dword [0x48df3c], eax
push 2
push esi
call dword [0x484a5c]
mov dword [0x48be7c], 0x2da5c106
push esi
call dword [0x484a28]
mov ax, word [0x494462]
mov esi, 0xc8
lea eax, [esp + 0x7a0]
push esi
push eax
call fcn.00410793
add esp, 8
mov dword [0x48b920], 0x8ddc720c
lea eax, [esp + 0x868]
push esi
push eax
call fcn.00410793
add esp, 8
mov eax, dword [0x489050]
lea ecx, [eax - 1]
mov dword [0x489050], ecx
mov ecx, dword [0x488440]
mov edx, 0x561f20a8
sub edx, eax
sub edx, ecx
add dword [0x48ee0c], edx
lea eax, [esp + 0x558]
push 0x248
push eax
call fcn.00410793
add esp, 8
and dword [0x488e28], 0x846244f5
lea eax, [esp + 0xec]
push 0x448
push eax
call fcn.00410793
add esp, 8
mov eax, dword [0x48faf4]
dec eax
mov dword [0x48faf4], eax
imul eax, eax, 0x78b70bcb
or dword [0x48bbc0], eax
lea ecx, [esp + 0x534]
call fcn.0041b4e0
add esp, 0x934
pop esi
pop edi
pop ebx
pop ebp
ret