Function at 0x41b160
Capabilities:
Encode data using xor
Resolve function by djb2 hash
Resolve function by parsing pe exports

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
sub esp, 0x64
push ebx
push esi
push edi
mov edi, 0x6700
mov dword [esp + 0x38], 0xc25e
mov esi, 0x11fed
mov dword [esp + 0x18], edi
push ecx
mov dword [esp + 0x5c], 0x719b
mov ebx, 0x185ed
mov dword [esp + 0x64], 0x13596
mov dword [esp + 0x40], esi
mov dword [esp + 0x50], 0x41e9
mov dword [esp + 0x2c], 0x11997
mov dword [esp + 0x34], 0x17df8
mov dword [esp + 0x6c], 0x10def
mov dword [esp + 0x24], 0x137e8
mov dword [esp + 0x28], 0x3e46
mov dword [esp + 0x60], 0x949
mov dword [esp + 0x44], 0x1325b
mov dword [esp + 0x54], 0x5d85
mov dword [esp + 0x18], 0xce56
mov dword [esp + 0x48], 0x2cd
mov dword [esp + 0x58], 0xdb0a
mov dword [esp + 0x4c], 0xa74d
mov dword [esp + 0x30], 0x2efb
call fcn.004051a0
add esp, 4
mov ecx, 0x4847
nop dword [eax]
and ecx, 0x3010
or ecx, 0xee2
cmp ecx, 0x2a73
jae 0x41b2aa
sub dword [esp + 0x28], 0x12f2e
or dword [esp + 0x5c], 0x13ecc
and dword [esp + 0x60], 0x1688a
mov edx, dword [esp + 0x24]
cmp edx, 0xd190
jle 0x41b2aa
add ecx, dword [esp + 0x44]
or edi, 0xcbcf
and dword [esp + 0x44], esi
sub edx, 0x1415f
or dword [esp + 0x48], 0x1090a
mov dword [esp + 0x18], edi
mov dword [esp + 0x24], edx
cmp esi, 0x12508
je 0x41b2aa
mov edx, dword [esp + 0x60]
mov esi, dword [esp + 0x2c]
and edx, 0x646c
xor esi, dword [esp + 0x28]
add ecx, edx
mov dword [esp + 0x2c], esi
xor ecx, 0x177c7
mov esi, dword [esp + 0x3c]
mov dword [esp + 0x60], edx
and dword [esp + 0x5c], 0xce56
inc eax
xor dword [esp + 0x4c], 0x17df8
xor ebx, 0x17df8
sub dword [esp + 0x20], 0xdf07
mov edi, dword [esp + 0x18]
cmp ecx, 0xfe22
jge 0x41b393
mov edx, dword [esp + 0x60]
sub ebx, edi
add dword [esp + 0x54], edx
and ebx, 0x614f
mov edx, dword [esp + 0x2c]
sub dword [esp + 0x68], edx
mov edx, dword [esp + 0x38]
add dword [esp + 0x4c], esi
add edx, 0x9d8
sub dword [esp + 0x28], 0xc3e6
or dword [esp + 0x44], edx
cmp dword [esp + 0x40], 0x430f
mov dword [esp + 0x38], edx
jge 0x41b393
xor dword [esp + 0x20], eax
or edi, 0x1041b
and dword [esp + 0x24], 0xdb72
xor esi, 0xda67
mov dword [esp + 0x18], edi
mov edi, dword [esp + 0x2c]
and edi, ebx
mov dword [esp + 0x3c], esi
or dword [esp + 0x28], edi
mov dword [esp + 0x2c], edi
mov edi, dword [esp + 0x4c]
sub edi, dword [esp + 0x60]
mov dword [esp + 0x4c], edi
mov edi, dword [esp + 0x18]
cmp edx, 0x7bd7
jle 0x41b393
mov edx, dword [esp + 0x5c]
or ebx, esi
mov esi, dword [esp + 0x4c]
xor dword [esp + 0x20], edx
sub edx, 0x3222
sub esi, dword [esp + 0x54]
xor dword [esp + 0x40], 0x684b
or edi, dword [esp + 0x38]
mov dword [esp + 0x4c], esi
mov esi, dword [esp + 0x3c]
mov dword [esp + 0x5c], edx
mov dword [esp + 0x18], edi
cmp eax, 0xfffeb60c
jl 0x41b220
mov dword [esp + 0x64], ecx
mov dword [esp + 0x10], eax
mov dword [esp + 0x34], ebx
call fcn.00403170
mov edx, dword [esp + 0x5c]
sub esp, 0x10
lea edx, [edx + 0x16924]
call fcn.00401650
mov ecx, dword [esp + 0x74]
add esp, 0x10
mov edx, dword [esp + 0x24]
mov dword [esp + 0x1c], eax
mov eax, dword [esp + 0x10]
nop dword [eax]
nop dword [eax + eax]
mov ebx, dword [esp + 0x30]
or edx, 0x75d
mov edi, dword [esp + 0x4c]
and edi, dword [esp + 0x5c]
mov dword [esp + 0x6c], ebx
sub ebx, dword [esp + 0x68]
mov dword [esp + 0x4c], edi
mov edi, dword [esp + 0x18]
mov dword [esp + 0x24], edx
mov dword [esp + 0x30], ebx
cmp eax, 0xfa51
jle 0x41b4a5
mov esi, dword [esp + 0x5c]
and esi, dword [esp + 0x58]
xor dword [esp + 0x1c], esi
cmp dword [esp + 0x48], 0x7728
mov dword [esp + 0x5c], esi
jge 0x41b4a5
mov esi, dword [esp + 0x58]
and dword [esp + 0x14], esi
add esi, 0x625c
mov eax, dword [esp + 0x6c]
sub dword [esp + 0x38], 0x5d85
cmp dword [esp + 0x40], 0x16ae0
mov dword [esp + 0x30], eax
mov eax, dword [esp + 0x10]
mov dword [esp + 0x58], esi
jne 0x41b4a5
mov edi, dword [esp + 0x30]
sub dword [esp + 0x44], 0x10238
sub edi, 0x11e9f
and dword [esp + 0x54], 0x640f
cmp edi, 0x17039
mov dword [esp + 0x30], edi
mov edi, dword [esp + 0x18]
jle 0x41b4a5
mov ebx, dword [esp + 0x68]
xor edx, edi
sub ebx, dword [esp + 0x28]
sub edx, 0x12afb
or dword [esp + 0x60], eax
mov dword [esp + 0x68], ebx
mov dword [esp + 0x24], edx
mov ebx, dword [esp + 0x5c]
xor dword [esp + 0x48], ebx
and ebx, 0x121f8
mov esi, dword [esp + 0x40]
xor esi, dword [esp + 0x20]
inc dword [esp + 0x28]
and dword [esp + 0x30], edx
mov dword [esp + 0x40], esi
mov esi, dword [esp + 0x3c]
mov dword [esp + 0x5c], ebx
mov ebx, dword [esp + 0x34]
cmp ecx, 0x15f26
jge 0x41b550
mov edx, dword [esp + 0x4c]
or esi, 0xfd67
sub ebx, dword [esp + 0x1c]
or edx, esi
and edx, dword [esp + 0x48]
or edi, 0xcbe3
and dword [esp + 0x30], 0x4665
xor dword [esp + 0x2c], 0x9d57
cmp dword [esp + 0x1c], 0x22e
mov dword [esp + 0x4c], edx
mov edx, dword [esp + 0x24]
mov dword [esp + 0x3c], esi
mov dword [esp + 0x34], ebx
mov dword [esp + 0x18], edi
jge 0x41b550
mov eax, dword [esp + 0x30]
or dword [esp + 0x48], 0xea9f
and eax, 0x3e57
sub eax, 0x33f8
mov dword [esp + 0x30], eax
mov eax, dword [esp + 0x14]
or eax, 0xdd9e
or esi, eax
mov eax, dword [esp + 0x10]
mov dword [esp + 0x3c], esi
cmp dword [esp + 0x28], 0xffff2684
mov ebx, dword [esp + 0x34]
jl 0x41b3e0
cmp dword [esp + 0x30], 0x605
mov esi, dword [esp + 0x3c]
jge 0x41b6d4
mov edi, 0x605
sub edi, dword [esp + 0x30]
mov dword [esp + 0x64], edi
mov edi, dword [esp + 0x18]
mov dword [esp + 0x30], 0x605
nop dword [eax]
mov eax, dword [esp + 0x1c]
add eax, dword [esp + 0x44]
sub dword [esp + 0x50], ecx
mov esi, dword [esp + 0x3c]
mov dword [esp + 0x1c], eax
mov eax, dword [esp + 0x5c]
xor eax, 0x1d32
mov dword [esp + 0x5c], eax
cmp eax, 0x9152
mov eax, dword [esp + 0x10]
jge 0x41b685
mov esi, dword [esp + 0x48]
xor dword [esp + 0x54], esi
add dword [esp + 0x5c], 0x14610
xor dword [esp + 0x60], 0xcf82
or dword [esp + 0x14], 0x15ddc
cmp dword [esp + 0x68], 0xbcd2
mov esi, dword [esp + 0x3c]
jne 0x41b685
mov esi, dword [esp + 0x44]
and ebx, edx
sub dword [esp + 0x60], esi
mov esi, dword [esp + 0x14]
xor dword [esp + 0x2c], esi
mov esi, dword [esp + 0x28]
sub ecx, dword [esp + 0x48]
add esi, esi
sub dword [esp + 0x1c], eax
mov dword [esp + 0x28], esi
mov esi, dword [esp + 0x4c]
sub dword [esp + 0x58], esi
mov esi, dword [esp + 0x3c]
cmp ebx, 0x17ac1
jge 0x41b685
mov esi, dword [esp + 0x2c]
xor ecx, 0x15f14
xor dword [esp + 0x28], 0x16c99
or esi, 0x9045
xor dword [esp + 0x54], esi
xor dword [esp + 0x50], eax
mov dword [esp + 0x2c], esi
mov esi, dword [esp + 0x3c]
cmp ebx, 0xdf58
jle 0x41b685
or dword [esp + 0x58], ebx
mov eax, esi
or dword [esp + 0x48], 0x169ed
or eax, 0xbcd2
add eax, dword [esp + 0x44]
or edi, 0xbd77
or ebx, esi
mov dword [esp + 0x68], eax
inc dword [esp + 0x1c]
mov eax, dword [esp + 0x10]
and dword [esp + 0x5c], 0xff31
sub ebx, eax
or edi, 0x17bc3
mov dword [esp + 0x34], ebx
cmp dword [esp + 0x54], 0xba5e
mov dword [esp + 0x18], edi
jge 0x41b6c1
mov edi, dword [esp + 0x38]
add edx, 0xfbf2
xor edi, 0xd4ad
mov dword [esp + 0x38], edi
or edx, edi
mov edi, dword [esp + 0x18]
sub dword [esp + 0x64], 1
jne 0x41b590
mov dword [esp + 0x24], edx
mov dword [esp + 0x64], ecx
sub esp, 0x1c
call fcn.00404bc0
mov dword [esp + 0x5c], eax
add esp, 0x1c
mov eax, dword [esp + 0x4c]
cmp eax, 0xa90a
jge 0x41b8a7
mov edx, dword [esp + 0x30]
mov ecx, 0xa90a
sub ecx, eax
mov dword [esp + 0x4c], 0xa90a
mov eax, dword [esp + 0x64]
mov dword [esp + 0x6c], ecx
mov ecx, dword [esp + 0x24]
mov esi, dword [esp + 0x68]
xor ebx, edi
xor esi, dword [esp + 0x54]
add edx, ecx
add dword [esp + 0x54], esi
xor dword [esp + 0x14], eax
mov dword [esp + 0x68], esi
mov esi, dword [esp + 0x10]
mov dword [esp + 0x34], ebx
mov dword [esp + 0x30], edx
cmp ebx, 0x9b9b
je 0x41b791
and dword [esp + 0x50], edi
xor edx, 0x15dd5
add ebx, 0xe42
mov dword [esp + 0x30], edx
cmp dword [esp + 0x68], 0x1818a
mov dword [esp + 0x34], ebx
jle 0x41b791
mov ecx, dword [esp + 0x50]
mov edx, dword [esp + 0x38]
or edx, dword [esp + 0x44]
or dword [esp + 0x68], 0x18690
xor dword [esp + 0x54], 0x9553
and dword [esp + 0x20], ecx
add ecx, 0x9423
mov dword [esp + 0x38], edx
mov edx, dword [esp + 0x30]
mov dword [esp + 0x50], ecx
mov ecx, dword [esp + 0x44]
and ecx, dword [esp + 0x20]
mov dword [esp + 0x44], ecx
mov ecx, dword [esp + 0x60]
add ecx, 0x4b90
or ecx, dword [esp + 0x68]
mov dword [esp + 0x60], ecx
mov ecx, dword [esp + 0x24]
cmp eax, 0x1318d
je 0x41b890
mov ebx, dword [esp + 0x14]
and dword [esp + 0x60], ebx
mov ebx, dword [esp + 0x38]
and dword [esp + 0x28], ebx
and dword [esp + 0x48], edi
add edi, 0x12da7
mov ebx, dword [esp + 0x1c]
xor esi, dword [esp + 0x68]
sub dword [esp + 0x20], ebx
cmp dword [esp + 0x44], 0x41d1
mov ebx, dword [esp + 0x34]
mov dword [esp + 0x10], esi
mov dword [esp + 0x18], edi
jle 0x41b890
mov edi, dword [esp + 0x50]
xor edi, dword [esp + 0x60]
add edx, dword [esp + 0x5c]
xor dword [esp + 0x44], 0x2fcc
xor dword [esp + 0x2c], 0x5af2
mov dword [esp + 0x50], edi
mov edi, dword [esp + 0x18]
mov dword [esp + 0x30], edx
cmp esi, 0x16edd
jle 0x41b890
xor dword [esp + 0x20], 0x2ab7
add dword [esp + 0x50], 0x876b
xor dword [esp + 0x48], 0x8b5d
cmp dword [esp + 0x14], 0x24ff
jle 0x41b890
xor dword [esp + 0x1c], 0x1c4
and ebx, 0x8d5f
sub eax, 0x6c3e
mov dword [esp + 0x34], ebx
cmp dword [esp + 0x58], 0x92d2
jge 0x41b890
xor dword [esp + 0x50], esi
xor edx, eax
or dword [esp + 0x54], 0x14249
add dword [esp + 0x40], 0xcdee
inc edi
mov dword [esp + 0x30], edx
mov dword [esp + 0x18], edi
sub dword [esp + 0x6c], 1
jne 0x41b711
mov esi, dword [esp + 0x3c]
mov dword [esp + 0x64], eax
mov eax, dword [esp + 0x4c]
push ecx
lea ecx, [eax + 0x468d]
call fcn.00402280
mov ecx, dword [esp + 0x28]
mov edx, eax
mov eax, dword [esp + 0x68]
or esi, ecx
xor eax, dword [esp + 0x50]
and edx, 0x13500
xor eax, 0x1f32
mov dword [esp + 0x40], esi
add esp, 4
mov dword [esp + 0x14], eax
cmp dword [esp + 0x48], 0x5148
mov dword [esp + 0x60], edx
jne 0x41b905
mov eax, dword [esp + 0x30]
sub ecx, 0x2e0c
add esi, ebx
mov dword [esp + 0x24], ecx
or eax, 0x1751
mov dword [esp + 0x3c], esi
inc eax
mov dword [esp + 0x30], eax
push ecx
call fcn.00404040
mov ecx, dword [esp + 0x54]
add esp, 4
mov edi, eax
lea ecx, [ecx - 0x855e]
call fcn.00402430
mov ecx, dword [esp + 0x10]
mov dword [esp + 0x38], eax
xor ecx, 0x6d02
mov eax, edi
mov dword [esp + 0x10], ecx
and eax, 0x24bb
mov dword [esp + 0x4c], eax
cmp edi, 0x65cb
je 0x41ba3d
mov eax, dword [esp + 0x58]
or dword [esp + 0x54], eax
mov ecx, dword [esp + 0x18]
mov eax, dword [esp + 0x14]
mov edx, dword [esp + 0x24]
xor eax, 0x1b9f
add ecx, dword [esp + 0x28]
sub edx, 0x383a
mov dword [esp + 0x18], ecx
mov dword [esp + 0x14], eax
mov dword [esp + 0x24], edx
cmp ecx, 0x6888
jne 0x41ba3d
mov ecx, dword [esp + 0x40]
xor dword [esp + 0x20], ecx
mov ecx, dword [esp + 0x54]
add dword [esp + 0x28], ecx
sub dword [esp + 0x58], esi
mov ecx, dword [esp + 0x30]
cmp ecx, 0x11068
je 0x41ba3d
mov ebx, dword [esp + 0x4c]
and eax, 0x8a31
sub ebx, dword [esp + 0x28]
sub dword [esp + 0x20], 0xab09
add edx, ebx
mov dword [esp + 0x4c], ebx
mov ebx, dword [esp + 0x34]
mov dword [esp + 0x24], edx
and ebx, 0x57d9
mov edx, dword [esp + 0x2c]
mov dword [esp + 0x34], ebx
mov dword [esp + 0x14], eax
cmp edx, 0x5116
je 0x41ba3d
mov eax, dword [esp + 0x5c]
xor ecx, 0x17ef6
and dword [esp + 0x58], 0x9c3f
xor eax, 0xab4e
cmp dword [esp + 0x50], 0x6a6f
mov dword [esp + 0x5c], eax
mov dword [esp + 0x30], ecx
jle 0x41ba3d
mov ecx, dword [esp + 0x1c]
and edx, 0xb61e
sub ecx, dword [esp + 0x60]
add esi, eax
add dword [esp + 0x54], 0xce61
or ecx, 0x6888
add dword [esp + 0x40], edx
add ebx, eax
mov dword [esp + 0x18], ecx
mov dword [esp + 0x3c], esi
mov dword [esp + 0x34], ebx
sub esp, 0x10
call fcn.00405770
call fcn.00402cc0
push 0xdfc
push 0xf42a
call fcn.00403510
call fcn.00404cd0
mov eax, dword [esp + 0x38]
add esp, 8
add eax, 0x31e38
push eax
push ecx
call fcn.004012d0
mov eax, dword [esp + 0x40]
add esp, 0x18
add eax, 0xb81c
push eax
lea eax, [esi - 0x13c04]
push eax
push ecx
mov ecx, dword [esp + 0x4c]
lea ecx, [ecx - 0xb27]
call fcn.004055e0
mov ecx, dword [0x47eddc]
add esp, 0xc
mov edx, 0x5fbff0fb
mov dword [esp + 0x48], eax
call fcn.00418470
mov edx, dword [esp + 0x64]
mov ecx, dword [esp + 0x40]
add ecx, 0x8a1e
mov dword [0x47edd8], eax
push ecx
lea edx, [edx + 0x1562c]
call fcn.004040c0
mov eax, dword [esp + 0x28]
add esp, 4
mov edx, dword [esp + 0x30]
add eax, 0xfffff961
mov ecx, dword [esp + 0x64]
push eax
mov eax, dword [esp + 0x3c]
lea edx, [edx - 0x5732]
add eax, 0xa1bc
lea ecx, [ecx - 0x8b7]
push eax
mov eax, dword [esp + 0x5c]
add eax, 0xfffdf450
push eax
sub esp, 8
call fcn.00404500
mov ecx, dword [esp + 0x6c]
add esp, 0xc
add ecx, 0xffffc36c
mov dword [esp + 0x34], eax
push ecx
push ecx
call fcn.00401980
mov ecx, dword [esp + 0x28]
add esp, 0x10
mov edx, dword [esp + 0x10]
mov dword [esp + 0x68], eax
mov eax, dword [esp + 0x38]
mov ebx, dword [esp + 0x50]
add edi, 0xa45f
sub dword [esp + 0x68], 0xf89c
add ebx, 0x43b2
add ebx, ecx
mov dword [esp + 0x50], ebx
cmp edx, 0x11ebb
jge 0x41bc32
mov esi, dword [esp + 0x24]
add edx, eax
sub dword [esp + 0x5c], 0xcd04
add esi, 0x1257e
xor esi, dword [esp + 0x30]
add dword [esp + 0x34], 0xd8ce
xor dword [esp + 0x14], 0x1586
cmp dword [esp + 0x54], 0x1532e
mov dword [esp + 0x24], esi
mov dword [esp + 0x10], edx
jge 0x41bc32
mov edx, dword [esp + 0x4c]
and edx, 0x804f
xor dword [esp + 0x24], edx
cmp dword [esp + 0x68], 0x16a68
mov dword [esp + 0x4c], edx
mov edx, dword [esp + 0x10]
jle 0x41bc32
mov eax, dword [esp + 0x54]
and eax, dword [esp + 0x30]
sub eax, dword [esp + 0x2c]
or dword [esp + 0x60], ecx
mov dword [esp + 0x30], eax
mov eax, dword [esp + 0x38]
add eax, 0x42d6
add eax, dword [esp + 0x4c]
cmp dword [esp + 0x24], 0x16e05
jle 0x41bc32
mov ecx, dword [esp + 0x5c]
or edx, 0xb542
or dword [esp + 0x24], ecx
xor dword [esp + 0x68], 0x13dfe
sub dword [esp + 0x3c], 0x15f55
cmp dword [esp + 0x58], 0xa14e
mov ecx, dword [esp + 0x18]
mov dword [esp + 0x10], edx
je 0x41bc32
mov ebx, dword [esp + 0x2c]
xor dword [esp + 0x24], 0xe34c
or dword [esp + 0x60], 0xf69b
and ebx, dword [esp + 0x30]
mov dword [esp + 0x2c], ebx
mov esi, dword [esp + 0x20]
mov ebx, dword [esp + 0x68]
inc esi
and dword [esp + 0x24], ebx
mov ebx, dword [esp + 0x4c]
add ecx, ebx
sub eax, dword [esp + 0x28]
and dword [esp + 0x5c], ebx
inc dword [esp + 0x58]
cmp esi, 0xfffe0064
mov ebx, dword [esp + 0x34]
mov dword [esp + 0x20], esi
mov esi, dword [esp + 0x3c]
mov dword [esp + 0x38], eax
mov dword [esp + 0x18], ecx
jl 0x41bb33
mov eax, dword [esp + 0x58]
mov edx, dword [esp + 0x14]
add eax, 0x8884
push ecx
mov ecx, dword [esp + 0x30]
push eax
sub esp, 0x18
lea edx, [edx + 0x2d6f]
lea ecx, [ecx + 0xe5ec]
call fcn.00401aa0
add esp, 0x20
mov dword [esp + 0x44], eax
cmp dword [esp + 0x30], 0x17bb2
jge 0x41be38
mov eax, dword [esp + 0x18]
mov esi, dword [esp + 0x64]
mov edx, dword [esp + 0x38]
nop dword [eax]
mov ebx, dword [esp + 0x14]
or edx, 0x12407
mov dword [esp + 0x64], ebx
add edi, edi
mov ebx, dword [esp + 0x34]
xor dword [esp + 0x24], ebx
mov dword [esp + 0x6c], eax
xor eax, 0x9af8
cmp dword [esp + 0x50], 0x5551
mov dword [esp + 0x38], edx
mov dword [esp + 0x18], eax
jge 0x41bd92
mov eax, dword [esp + 0x6c]
and dword [esp + 0x48], 0x6d9b
add dword [esp + 0x4c], ebx
mov dword [esp + 0x14], eax
mov eax, dword [esp + 0x64]
xor dword [esp + 0x14], eax
xor dword [esp + 0x14], 0x9af8
cmp dword [esp + 0x60], 0xeb31
mov eax, dword [esp + 0x18]
jne 0x41bd92
mov ecx, dword [esp + 0x20]
add esi, 0x14c2d
or dword [esp + 0x48], 0xd5ef
xor ecx, 0x23ec0
xor dword [esp + 0x2c], 0x13f74
or dword [esp + 0x58], 0x10544
mov dword [esp + 0x60], ecx
cmp edi, 0x3e90
jne 0x41bd92
and dword [esp + 0x4c], 0x14f71
mov ebx, dword [esp + 0x48]
and dword [esp + 0x20], ebx
mov ebx, dword [esp + 0x4c]
xor dword [esp + 0x40], 0x1647d
inc dword [esp + 0x30]
and dword [esp + 0x44], 0xe292
sub ebx, dword [esp + 0x24]
mov dword [esp + 0x4c], ebx
jmp 0x41be1a
mov edx, dword [esp + 0x4c]
sub edx, dword [esp + 0x24]
inc dword [esp + 0x30]
and dword [esp + 0x44], 0xe292
mov dword [esp + 0x4c], edx
mov edx, dword [esp + 0x38]
cmp edi, 0xa6fc
jle 0x41be1e
mov edx, dword [esp + 0x68]
and edx, dword [esp + 0x30]
add dword [esp + 0x14], 0x3ff0
mov dword [esp + 0x68], edx
mov edx, dword [esp + 0x44]
and edx, dword [esp + 0x20]
cmp dword [esp + 0x48], 0x5f80
mov dword [esp + 0x44], edx
mov edx, dword [esp + 0x38]
jle 0x41be1e
add edi, dword [esp + 0x44]
or eax, edx
or edi, dword [esp + 0x48]
and edi, 0x6573
mov dword [esp + 0x18], eax
cmp dword [esp + 0x10], 0xf00
jne 0x41be1e
mov ebx, dword [esp + 0x20]
and dword [esp + 0x40], 0xcebe
add edi, dword [esp + 0x24]
sub ebx, dword [esp + 0x28]
mov dword [esp + 0x20], ebx
mov ebx, dword [esp + 0x34]
cmp dword [esp + 0x30], 0x17bb2
jl 0x41bcc0
mov eax, dword [esp + 0x44]
mov dword [esp + 0x64], esi
mov esi, dword [esp + 0x3c]
mov edx, dword [esp + 0x50]
mov ecx, dword [esp + 0x40]
add edx, 0x12f62
or edx, dword [esp + 0x68]
add dword [esp + 0x4c], ecx
mov dword [esp + 0x6c], edx
cmp edx, 0x16e1c
je 0x41be6c
add ecx, eax
or edi, 0xeffb
and ebx, eax
mov dword [esp + 0x40], ecx
mov dword [esp + 0x34], ebx
push 0xaf33
push 0x33bc
push 0x6599
mov edx, 0x81a3
mov ecx, 0x57ae
call fcn.00414d10
add esp, 0xc
push eax
call dword [0x47edd8]
mov edx, dword [esp + 0x48]
mov ecx, dword [esp + 0x4c]
mov dword [0x47ee00], eax
lea edx, [edx - 0x1ecd]
lea ecx, [ecx - 0xb310]
call fcn.00404640
mov ecx, dword [esp + 0x58]
sub esp, 0xc
mov edx, dword [esp + 0x58]
add ecx, 0xb54d
mov dword [esp + 0x5c], eax
push ecx
mov ecx, dword [esp + 0x3c]
lea edx, [edx + 0x5852]
add ecx, 0x6e79
push ecx
call fcn.004043b0
mov ecx, dword [esp + 0x74]
add esp, 0x14
mov edx, dword [esp + 0x6c]
add ecx, 0xffff71e3
mov dword [esp + 0x1c], eax
add edx, 0xfff9bf6d
mov eax, dword [esp + 0x44]
push ecx
push ecx
lea ecx, [eax + 0x8a8e]
push ecx
lea ecx, [eax + 0x128ff]
call fcn.00404ef0
mov dword [esp + 0x54], eax
call fcn.00401260
mov edx, dword [esp + 0x2c]
push ecx
mov dword [esp + 0x40], eax
lea edx, [edx + 0x37704]
call fcn.00401650
mov ecx, dword [esp + 0x30]
add esp, 4
mov edx, dword [esp + 0x6c]
add ecx, 0x28e79
mov dword [esp + 0x30], eax
push ecx
mov ecx, dword [esp + 0x28]
lea edx, [edx - 0x9349]
add ecx, 0xfffc060a
push ecx
push ecx
call fcn.00402d30
mov ecx, dword [esp + 0x30]
add esp, 0x18
mov edx, dword [esp + 0x10]
mov dword [esp + 0x68], eax
mov eax, dword [esp + 0x64]
mov dword [esp + 0x54], 0x5504
nop word [eax + eax]
mov ebx, dword [esp + 0x4c]
and edx, 0x23ee
xor dword [esp + 0x20], ebx
mov ebx, dword [esp + 0x68]
xor dword [esp + 0x48], 0xd991
xor ebx, esi
add dword [esp + 0x38], 0x5a00
and ebx, 0xee4f
cmp dword [esp + 0x20], 0xbd12
mov dword [esp + 0x10], edx
mov dword [esp + 0x68], ebx
jle 0x41c0ba
mov ecx, dword [esp + 0x1c]
and edi, 0x12ff8
and dword [esp + 0x60], ecx
xor ecx, 0xebf1
or dword [esp + 0x44], 0x16cc4
sub eax, ecx
xor dword [esp + 0x20], 0x12320
sub dword [esp + 0x40], 0x152c1
mov dword [esp + 0x1c], ecx
mov ecx, dword [esp + 0x28]
add ecx, dword [esp + 0x38]
cmp dword [esp + 0x4c], 0x13ba3
mov dword [esp + 0x28], ecx
mov ecx, dword [esp + 0x18]
jne 0x41c0ba
and esi, dword [esp + 0x38]
mov edx, ebx
xor dword [esp + 0x20], 0x182c6
add edx, 0x13ba3
or dword [esp + 0x60], 0x11d66
cmp dword [esp + 0x38], 0xdeae
mov dword [esp + 0x4c], edx
mov edx, dword [esp + 0x10]
je 0x41c0ba
mov ecx, dword [esp + 0x40]
and edx, 0x8c1a
sub dword [esp + 0x54], 0x44c0
add ecx, ecx
sub dword [esp + 0x20], eax
cmp dword [esp + 0x54], 0x1360
mov dword [esp + 0x40], ecx
mov ecx, dword [esp + 0x18]
mov dword [esp + 0x10], edx
je 0x41c0ba
and dword [esp + 0x24], 0x177be
or dword [esp + 0x4c], 0x733d
xor dword [esp + 0x68], 0x16a04
and eax, dword [esp + 0x58]
cmp dword [esp + 0x48], 0x11875
mov ebx, dword [esp + 0x34]
jle 0x41c0ba
mov ecx, dword [esp + 0x68]
or dword [esp + 0x20], edx
add dword [esp + 0x4c], 0x877d
and dword [esp + 0x2c], ebx
and esi, dword [esp + 0x54]
add ecx, dword [esp + 0x50]
mov dword [esp + 0x68], ecx
mov ecx, dword [esp + 0x18]
mov ebx, dword [esp + 0x44]
inc ecx
mov edx, dword [esp + 0x50]
sub ebx, eax
or dword [esp + 0x54], ebx
sub esi, 0xdde9
add dword [esp + 0x40], edx
mov edx, dword [esp + 0x30]
add dword [esp + 0x24], 0x120bf
add edx, 0x970e
mov dword [esp + 0x44], ebx
mov ebx, dword [esp + 0x2c]
and ebx, 0x17d9f
mov dword [esp + 0x30], edx
add ebx, 0xb920
mov dword [esp + 0x18], ecx
mov dword [esp + 0x2c], ebx
cmp edx, 0x46b0
mov ebx, dword [esp + 0x34]
mov edx, dword [esp + 0x10]
je 0x41c125
sub dword [esp + 0x4c], esi
or dword [esp + 0x14], 0xbe71
sub dword [esp + 0x40], ebx
cmp ecx, 0x3fef8
jl 0x41bf80
mov dword [esp + 0x64], eax
mov eax, dword [esp + 0x2c]
mov dword [esp + 0x3c], esi
cmp eax, 0xb9a8
jae 0x41c1e9
mov esi, dword [esp + 0x30]
mov ebx, 0xb9a8
sub ebx, eax
mov dword [esp + 0x2c], 0xb9a8
imul eax, ebx, 0xffff271f
mov dword [esp + 0x6c], ebx
add ecx, eax
imul eax, ebx, 0xfffef694
mov ebx, dword [esp + 0x24]
mov dword [esp + 0x18], ecx
mov ecx, dword [esp + 0x1c]
add dword [esp + 0x60], eax
mov eax, dword [esp + 0x64]
or ebx, 0x1869f
add edi, 0x2063
cmp eax, 0xa740
jne 0x41c1b6
xor edx, dword [esp + 0x4c]
sub dword [esp + 0x40], ebx
and ebx, dword [esp + 0x38]
sub eax, dword [esp + 0x54]
mov dword [esp + 0x10], edx
mov edx, dword [esp + 0x4c]
and dword [esp + 0x14], edx
add esi, ebx
mov edx, dword [esp + 0x10]
and dword [esp + 0x40], 0x112e3
and edi, esi
or dword [esp + 0x4c], 0x289e
xor dword [esp + 0x28], ecx
sub dword [esp + 0x6c], 1
jne 0x41c181
mov dword [esp + 0x30], esi
mov esi, dword [esp + 0x3c]
mov dword [esp + 0x24], ebx
mov ebx, dword [esp + 0x34]
mov dword [esp + 0x64], eax
jmp 0x41c1ed
mov ecx, dword [esp + 0x1c]
mov eax, dword [esp + 0x58]
add eax, 0xffff1b04
mov dword [esp + 0x6c], 0
mov dword [esp + 0x68], eax
add eax, 0x7361
mov dword [esp + 0x3c], eax
test eax, eax
jle 0x41c28c
mov ecx, dword [esp + 0x1c]
imul eax, eax, 0x14d55
add dword [esp + 0x50], eax
xor eax, eax
nop
and eax, esi
mov dword [esp + 0x5c], eax
mov esi, eax
cmp edi, 0xc69f
jge 0x41c271
mov eax, dword [esp + 0x40]
or ebx, 0x163c6
sub edx, dword [esp + 0x68]
add edi, dword [esp + 0x2c]
xor dword [esp + 0x64], eax
cmp esi, 0x10b7
jne 0x41c271
sub dword [esp + 0x4c], ecx
sub eax, 0xea17
sub ecx, dword [esp + 0x58]
add dword [esp + 0x28], 0xdf0
or ebx, ecx
or dword [esp + 0x48], 0x5607
mov dword [esp + 0x40], eax
mov eax, dword [esp + 0x6c]
inc eax
mov dword [esp + 0x6c], eax
cmp eax, dword [esp + 0x3c]
jl 0x41c220
mov dword [esp + 0x1c], ecx
mov dword [esp + 0x10], edx
mov dword [esp + 0x34], ebx
push ecx
call fcn.00403c90
add esp, 4
mov dword [esp + 0x68], eax
cmp dword [esp + 0x50], 0x1e633
mov eax, dword [esp + 0x10]
jge 0x41c42c
mov edx, dword [esp + 0x1c]
nop
and dword [esp + 0x40], 0x9e91
add edi, 0x69a7
and dword [esp + 0x14], ebx
cmp dword [esp + 0x38], 0xc9e8
jne 0x41c3bd
mov ecx, dword [esp + 0x24]
or esi, 0x408d
or ecx, dword [esp + 0x60]
or edx, dword [esp + 0x50]
cmp dword [esp + 0x60], 0x16b4e
mov eax, dword [esp + 0x10]
mov dword [esp + 0x24], ecx
je 0x41c3bd
mov ebx, dword [esp + 0x60]
xor dword [esp + 0x14], ebx
add ebx, 0x4e39
mov dword [esp + 0x38], edx
or dword [esp + 0x38], 0xc9e8
cmp dword [esp + 0x14], 0x83d2
mov dword [esp + 0x60], ebx
mov ebx, dword [esp + 0x34]
jle 0x41c3bd
mov ecx, dword [esp + 0x68]
xor dword [esp + 0x28], ecx
cmp dword [esp + 0x2c], 0x10fb3
mov ecx, dword [esp + 0x24]
mov dword [esp + 0x14], 0
mov dword [esp + 0x24], ecx
jne 0x41c3bd
mov eax, dword [esp + 0x38]
add esi, 0x1028d
xor dword [esp + 0x68], 0x10fb3
mov dword [esp + 0x14], eax
mov eax, dword [esp + 0x58]
and eax, dword [esp + 0x50]
mov dword [esp + 0x58], eax
mov eax, dword [esp + 0x60]
xor eax, dword [esp + 0x44]
or eax, edi
mov dword [esp + 0x44], eax
cmp ebx, 0xa9b3
jne 0x41c3b9
mov eax, dword [esp + 0x48]
or dword [esp + 0x38], eax
mov eax, dword [esp + 0x64]
add dword [esp + 0x68], 0x17f40
add eax, esi
xor dword [esp + 0x28], 0x5bf9
and eax, 0x11237
mov dword [esp + 0x64], eax
mov eax, dword [esp + 0x60]
or dword [esp + 0x30], eax
mov dword [esp + 0x54], 0
mov eax, dword [esp + 0x10]
mov ecx, dword [esp + 0x18]
add eax, 0x13ab0
inc dword [esp + 0x50]
xor edx, ebx
add dword [esp + 0x38], 0x13835
add dword [esp + 0x60], ecx
mov dword [esp + 0x10], eax
cmp edi, 0xa6d
jge 0x41c416
mov ebx, dword [esp + 0x40]
sub eax, edi
xor ebx, dword [esp + 0x2c]
add dword [esp + 0x38], edi
and dword [esp + 0x58], esi
and dword [esp + 0x44], 0x7c2a
add esi, dword [esp + 0x38]
mov dword [esp + 0x40], ebx
mov ebx, dword [esp + 0x4c]
sub dword [esp + 0x30], ebx
dec dword [esp + 0x68]
mov dword [esp + 0x10], eax
cmp dword [esp + 0x50], 0x1e633
mov ebx, dword [esp + 0x34]
jl 0x41c2b0
mov dword [esp + 0x1c], edx
push ecx
add eax, 0xffffe8ca
push eax
call fcn.00404700
mov edx, dword [esp + 0x6c]
add esp, 8
mov dword [esp + 0x20], eax
cmp edx, 0xee3
jge 0x41c591
mov eax, 0xee3
sub eax, edx
mov edx, 0xee3
imul ecx, eax, 0xe8c2
mov dword [esp + 0x6c], eax
imul eax, eax, 0xffff9b9f
add dword [esp + 0x14], ecx
mov ecx, dword [esp + 0x10]
add dword [esp + 0x60], eax
nop word [eax + eax]
mov eax, dword [esp + 0x28]
and eax, dword [esp + 0x58]
xor dword [esp + 0x68], edi
mov dword [esp + 0x28], eax
cmp edi, 0xcbfd
jge 0x41c51f
or dword [esp + 0x1c], 0x1aa5
add eax, 0xed3a
add edi, eax
mov dword [esp + 0x28], eax
cmp dword [esp + 0x40], 0x301d
mov eax, dword [esp + 0x18]
jne 0x41c523
and dword [esp + 0x2c], 0x1b3c
xor dword [esp + 0x38], 0x8195
cmp eax, 0xb576
jle 0x41c523
mov ecx, dword [esp + 0x20]
or eax, 0x1433f
or dword [esp + 0x30], 0x85fa
add ecx, ebx
and ecx, dword [esp + 0x24]
xor esi, 0x122e4
mov dword [esp + 0x20], ecx
mov ecx, dword [esp + 0x2c]
sub ecx, dword [esp + 0x1c]
mov dword [esp + 0x2c], ecx
mov ecx, dword [esp + 0x10]
mov dword [esp + 0x18], eax
cmp edi, 0x2b00
jle 0x41c523
or eax, dword [esp + 0x20]
mov ebx, dword [esp + 0x34]
mov dword [esp + 0x18], eax
jmp 0x41c523
mov eax, dword [esp + 0x18]
add dword [esp + 0x28], ecx
mov ecx, dword [esp + 0x48]
or dword [esp + 0x1c], ecx
xor dword [esp + 0x30], 0x32b3
cmp dword [esp + 0x24], 0xb248
mov ecx, dword [esp + 0x10]
jle 0x41c586
mov ecx, dword [esp + 0x44]
and eax, 0x32af
sub ecx, dword [esp + 0x38]
add dword [esp + 0x2c], 0x10c47
sub dword [esp + 0x50], 0x4ce2
or dword [esp + 0x20], 0x7d34
cmp dword [esp + 0x58], 0x15a1f
mov dword [esp + 0x44], ecx
mov ecx, dword [esp + 0x10]
mov dword [esp + 0x18], eax
jne 0x41c586
sub esi, eax
dec dword [esp + 0x68]
sub dword [esp + 0x6c], 1
jne 0x41c480
mov eax, dword [esp + 0x18]
mov ebx, dword [esp + 0x1c]
mov dword [esp + 0x5c], 0xfe3b
mov ecx, dword [esp + 0x5c]
or eax, 0x4142
or ecx, dword [esp + 0x40]
sub esi, dword [esp + 0x28]
xor dword [esp + 0x68], 0x15a8d
mov dword [esp + 0x5c], ecx
mov ecx, dword [esp + 0x10]
mov dword [esp + 0x3c], esi
cmp edx, 0x1017c
jge 0x41c5fa
xor eax, ecx
sub edx, 0xecfe
cmp dword [esp + 0x20], 0x13632
jle 0x41c5fa
sub ebx, dword [esp + 0x44]
xor esi, esi
sub dword [esp + 0x30], 0x16c4a
and edx, dword [esp + 0x44]
and ebx, dword [esp + 0x40]
mov dword [esp + 0x3c], esi
inc dword [esp + 0x38]
add eax, 0x161b2
mov ecx, dword [esp + 0x20]
sub edi, 0x10e4
xor ecx, dword [esp + 0x38]
mov dword [esp + 0x20], ecx
mov ecx, dword [esp + 0x5c]
add dword [esp + 0x54], ecx
cmp dword [esp + 0x38], 0x3111d
jl 0x41c5a1
sub esp, 8
mov dword [esp + 0x24], ebx
mov dword [esp + 0x20], eax
call fcn.004018e0
mov ecx, dword [0x47eddc]
mov edx, 0x8afb8c5a
mov dword [esp + 0x30], eax
call fcn.00418470
mov ecx, dword [esp + 0x48]
add esp, 4
mov edx, dword [esp + 0x64]
add ecx, 0x1530d
mov dword [0x47edfc], eax
push ecx
mov ecx, dword [esp + 0x28]
lea edx, [edx - 0x238b0]
add ecx, 0xfffde7fc
push ecx
push ecx
call fcn.00401d50
push ecx
mov dword [esp + 0x78], eax
call fcn.00401ea0
mov ecx, dword [esp + 0x34]
add esp, 0x14
mov edx, dword [esp + 0x38]
or ecx, 0x1709
mov dword [esp + 0x58], eax
sub edi, edx
mov eax, ebx
mov dword [esp + 0x20], ecx
or eax, dword [esp + 0x5c]
sub dword [esp + 0x44], eax
cmp dword [esp + 0x54], 0x55df
mov ebx, dword [esp + 0x34]
mov dword [esp + 0x1c], eax
je 0x41c793
mov ebx, dword [esp + 0x44]
xor eax, 0x110db
sub dword [esp + 0x14], 0xa452
add ebx, 0xfffeb7f6
xor dword [esp + 0x28], 0x1453b
add eax, ebx
mov ebx, dword [esp + 0x34]
mov dword [esp + 0x1c], eax
cmp ecx, 0x16506
jle 0x41c793
add dword [esp + 0x2c], 0xd25c
add eax, esi
sub dword [esp + 0x10], edi
mov dword [esp + 0x1c], eax
mov eax, dword [esp + 0x5c]
sub edx, eax
xor eax, 0x16744
mov dword [esp + 0x38], edx
cmp dword [esp + 0x58], 0x103a0
mov dword [esp + 0x5c], eax
jne 0x41c793
mov ecx, dword [esp + 0x18]
mov eax, dword [esp + 0x50]
xor ecx, esi
or dword [esp + 0x48], edi
or eax, 0x860a
or dword [esp + 0x20], 0x4a0c
cmp dword [esp + 0x2c], 0xd08d
mov dword [esp + 0x18], ecx
mov dword [esp + 0x50], eax
jne 0x41c793
or dword [esp + 0x14], eax
sub dword [esp + 0x68], ebx
mov eax, dword [esp + 0x24]
and ecx, dword [esp + 0x68]
and eax, edi
add dword [esp + 0x44], edx
cmp dword [esp + 0x30], 0xfab7
mov dword [esp + 0x18], ecx
mov dword [esp + 0x24], eax
mov dword [esp + 0x2c], 0xf5ef
jge 0x41c793
sub edi, 0xd85
sub ebx, eax
and dword [esp + 0x20], 0x1482c
sub esp, 0x14
call fcn.00401370
mov ecx, dword [esp + 0x68]
add esp, 0x14
mov dword [esp + 0x4c], eax
lea ecx, [ecx - 0x5c1]
call fcn.00402430
mov ecx, dword [0x47eddc]
mov edx, 0x41ad16b9
mov dword [esp + 0x40], eax
call fcn.00418470
sub esp, 8
mov dword [0x47ede4], eax
call fcn.00403790
mov edx, dword [esp + 0x58]
add esp, 8
or edx, dword [esp + 0x4c]
mov ecx, dword [esp + 0x10]
and edi, ecx
sub dword [esp + 0x28], 0x21aa
xor dword [esp + 0x2c], 0x11c
add dword [esp + 0x5c], 0xb334
mov dword [esp + 0x60], eax
mov eax, dword [esp + 0x1c]
add dword [esp + 0x24], eax
cmp dword [esp + 0x40], 0xb473
mov dword [esp + 0x50], edx
mov edx, dword [esp + 0x38]
jne 0x41c881
mov eax, dword [esp + 0x60]
and ecx, 0x6743
mov esi, dword [esp + 0x5c]
and eax, edx
xor edx, eax
mov dword [esp + 0x60], eax
mov eax, dword [esp + 0x28]
add esi, 0x6e33
and eax, dword [esp + 0x44]
sub ecx, eax
mov dword [esp + 0x5c], esi
mov dword [esp + 0x28], eax
cmp esi, 0x1437a
mov esi, dword [esp + 0x3c]
mov eax, dword [esp + 0x1c]
mov dword [esp + 0x10], ecx
je 0x41c881
mov ecx, dword [esp + 0x58]
xor dword [esp + 0x20], esi
xor ecx, 0xb473
sub dword [esp + 0x10], 0x185ff
mov dword [esp + 0x40], ecx
mov ecx, dword [esp + 0x2c]
xor dword [esp + 0x24], ecx
xor eax, dword [esp + 0x20]
mov esi, dword [esp + 0x48]
and dword [esp + 0x54], 0x1e5f
and esi, 0x16ea4
add esi, dword [esp + 0x58]
cmp dword [esp + 0x40], 0xe345
mov dword [esp + 0x48], esi
jle 0x41c8e9
mov ecx, dword [esp + 0x50]
add eax, 0x14692
xor dword [esp + 0x54], ecx
or edi, 0x1078a
and ebx, 0x103b6
cmp dword [esp + 0x58], 0x105dc
jle 0x41c8e9
sub dword [esp + 0x30], eax
or eax, 0x101b9
add dword [esp + 0x40], 0x4639
xor dword [esp + 0x48], 0x14eac
add dword [esp + 0x28], edx
inc dword [esp + 0x60]
mov ecx, dword [esp + 0x44]
and eax, 0x171e
and dword [esp + 0x64], 0x12658
inc ecx
mov dword [esp + 0x44], ecx
cmp ecx, 0xfffbe1c8
jl 0x41c881
cmp dword [esp + 0x40], 0x8168
mov esi, dword [esp + 0x3c]
mov ecx, dword [esp + 0x10]
mov dword [esp + 0x1c], eax
jge 0x41ca90
mov eax, dword [esp + 0x24]
nop dword [eax]
mov esi, dword [esp + 0x4c]
or eax, 0x131d2
and dword [esp + 0x20], esi
add dword [esp + 0x4c], ecx
cmp dword [esp + 0x58], 0x534e
mov dword [esp + 0x24], eax
mov eax, dword [esp + 0x14]
jne 0x41c96b
sub dword [esp + 0x64], eax
add ecx, 0x1f0a
and dword [esp + 0x50], 0x10c65
add edx, 0x1de2
inc dword [esp + 0x40]
and eax, 0xa5c2
mov esi, dword [esp + 0x3c]
mov dword [esp + 0x14], eax
mov eax, dword [esp + 0x4c]
and eax, dword [esp + 0x5c]
add eax, dword [esp + 0x2c]
cmp dword [esp + 0x2c], 0x11249
mov dword [esp + 0x5c], eax
jne 0x41ca7a
xor ecx, dword [esp + 0x4c]
add eax, edx
mov dword [esp + 0x5c], eax
or ecx, edx
mov eax, dword [esp + 0x48]
and esi, eax
cmp dword [esp + 0x30], 0x4b3d
mov dword [esp + 0x3c], esi
jne 0x41ca7a
or dword [esp + 0x24], 0xd903
and eax, 0x7880
sub dword [esp + 0x20], ebx
or edx, dword [esp + 0x64]
mov dword [esp + 0x48], eax
mov eax, 0x11249
sub eax, dword [esp + 0x24]
add dword [esp + 0x44], eax
cmp dword [esp + 0x28], 0x216f
jge 0x41ca7a
mov eax, dword [esp + 0x40]
or esi, 0x10afd
sub dword [esp + 0x20], eax
add edx, 0xac2c
add ebx, dword [esp + 0x54]
or edi, 0x151bf
mov eax, dword [esp + 0x18]
mov dword [esp + 0x2c], 0x809d
mov dword [esp + 0x3c], esi
cmp eax, 0x13449
jge 0x41ca7a
mov esi, dword [esp + 0x58]
sub eax, 0xcb85
add dword [esp + 0x5c], 0x1732c
xor esi, 0x1759e
and esi, dword [esp + 0x4c]
or dword [esp + 0x20], 0xfb15
cmp dword [esp + 0x4c], 0xf3f8
mov dword [esp + 0x58], esi
mov esi, dword [esp + 0x3c]
mov dword [esp + 0x18], eax
jle 0x41ca7a
add eax, dword [esp + 0x48]
mov dword [esp + 0x18], eax
mov eax, dword [esp + 0x24]
and dword [esp + 0x20], eax
and dword [esp + 0x14], 0xcd65
jmp 0x41ca7e
mov eax, dword [esp + 0x24]
cmp dword [esp + 0x40], 0x8168
jl 0x41c930
nop dword [eax]
mov eax, dword [esp + 0x60]
add ebx, 0x807d
sub eax, dword [esp + 0x44]
mov dword [esp + 0x60], eax
mov eax, dword [esp + 0x2c]
sub eax, dword [esp + 0x54]
cmp dword [esp + 0x30], 0x123a7
mov dword [esp + 0x2c], eax
mov eax, dword [esp + 0x1c]
jle 0x41cb99
mov eax, dword [esp + 0x30]
add dword [esp + 0x4c], 0x14950
and eax, 0x16730
sub dword [esp + 0x58], edi
xor eax, 0xe263
xor esi, dword [esp + 0x20]
mov dword [esp + 0x30], eax
mov eax, dword [esp + 0x1c]
cmp edi, 0x11688
jne 0x41cb99
mov eax, dword [esp + 0x2c]
or dword [esp + 0x58], 0x1024f
and eax, 0x8180
or eax, 0x667f
mov dword [esp + 0x2c], eax
mov eax, dword [esp + 0x1c]
cmp ebx, 0xeb97
jge 0x41cb99
mov eax, dword [esp + 0x28]
and esi, eax
add dword [esp + 0x40], 0x7220
add eax, 0x2ebf
sub dword [esp + 0x30], 0x8986
mov dword [esp + 0x28], eax
mov eax, dword [esp + 0x48]
and eax, dword [esp + 0x2c]
cmp dword [esp + 0x4c], 0xedab
mov dword [esp + 0x48], eax
mov eax, dword [esp + 0x1c]
jge 0x41cb99
mov eax, dword [esp + 0x4c]
add eax, dword [esp + 0x48]
and dword [esp + 0x60], 0xec54
mov dword [esp + 0x4c], eax
mov eax, dword [esp + 0x50]
sub dword [esp + 0x14], eax
cmp eax, 0x88ea
mov eax, dword [esp + 0x1c]
jle 0x41cb99
mov eax, dword [esp + 0x44]
mov edi, 0x1488
or dword [esp + 0x48], eax
sub ebx, dword [esp + 0x40]
or dword [esp + 0x20], 0x18483
mov eax, dword [esp + 0x1c]
sub edx, dword [esp + 0x28]
or eax, 0x6eb5
sub dword [esp + 0x30], 0xebb7
inc ecx
or dword [esp + 0x5c], 0x16968
and edi, 0x14597
mov dword [esp + 0x1c], eax
mov eax, dword [esp + 0x44]
sub dword [esp + 0x58], eax
mov dword [esp + 0x10], ecx
mov dword [esp + 0x68], edi
cmp edx, 0x17f68
jne 0x41cc97
mov ecx, dword [esp + 0x5c]
or dword [esp + 0x40], ecx
or dword [esp + 0x28], 0x125a6
sub dword [esp + 0x2c], 0x1742
sub dword [esp + 0x30], 0x13f9d
xor dword [esp + 0x54], edx
or dword [esp + 0x48], 0x7273
cmp dword [esp + 0x20], 0x594
mov ecx, dword [esp + 0x10]
jle 0x41cc97
mov eax, dword [esp + 0x48]
xor eax, dword [esp + 0x20]
and dword [esp + 0x40], 0x166a3
cmp dword [esp + 0x14], 0x6072
mov dword [esp + 0x48], eax
jne 0x41cc97
mov ecx, dword [esp + 0x44]
sub esi, 0x9ae8
and ecx, dword [esp + 0x2c]
and dword [esp + 0x4c], esi
and dword [esp + 0x54], 0x15fdc
cmp dword [esp + 0x24], 0xcb8
mov dword [esp + 0x44], ecx
mov ecx, dword [esp + 0x10]
jne 0x41cc97
and dword [esp + 0x60], 0xf1ab
or esi, 0xb26a
sub dword [esp + 0x58], 0x13ed3
or dword [esp + 0x4c], 0x2904
and dword [esp + 0x28], 0x958c
mov dword [esp + 0x24], 0
mov dword [esp + 0x14], 0x6073
cmp ecx, 0x2e621
jl 0x41ca90
mov eax, dword [esp + 0x54]
mov ecx, 0x18108
mov edi, dword [esp + 0x28]
add eax, 0x16a0f
add edi, 0xffff0ed5
push 0xee47
or edi, eax
call fcn.00401170
sub esp, 8
call fcn.00401260
add esp, 0xc
lea edx, [edi - 0x156a]
mov ecx, 0x16e1b
push 0xbfe4
call fcn.00403d00
mov edi, dword [esp + 0x6c]
add esp, 4
mov dword [esp + 0x44], 0x249d
cmp esi, 1
jge 0x41cdb5
mov ecx, dword [esp + 0x14]
mov eax, 1
mov edx, dword [esp + 0x24]
sub eax, esi
mov esi, dword [esp + 0x1c]
mov dword [esp + 0x6c], eax
mov dword [esp + 0x3c], 1
nop
sub dword [esp + 0x40], ecx
xor ecx, 0x1704f
cmp dword [esp + 0x50], 0x14794
mov dword [esp + 0x14], ecx
jle 0x41cd7a
mov ecx, dword [esp + 0x5c]
add edi, 0xa94d
and ecx, dword [esp + 0x58]
sub dword [esp + 0x44], esi
xor ebx, dword [esp + 0x4c]
add dword [esp + 0x50], esi
mov dword [esp + 0x5c], ecx
mov ecx, dword [esp + 0x60]
and ecx, 0xc908
or ecx, 0x24d5
mov dword [esp + 0x60], ecx
mov ecx, dword [esp + 0x5c]
sub dword [esp + 0x28], ecx
inc dword [esp + 0x40]
mov ecx, dword [esp + 0x14]
mov esi, dword [esp + 0x40]
xor dword [esp + 0x44], esi
and esi, dword [esp + 0x20]
xor edx, dword [esp + 0x54]
xor dword [esp + 0x10], 0xd9eb
add dword [esp + 0x28], 0x18129
sub dword [esp + 0x6c], 1
mov dword [esp + 0x40], esi
mov esi, dword [esp + 0x1c]
jne 0x41cd20
mov esi, dword [esp + 0x3c]
mov dword [esp + 0x24], edx
mov edx, 0x98dd
mov ecx, 0x48b8
call fcn.00404640
mov eax, dword [esp + 0x60]
add eax, 0xffff8585
mov dword [esp + 0x68], 0x385
push eax
sub esp, 0x10
call fcn.00401930
mov ecx, dword [0x47eddc]
add esp, 0x14
mov edx, 0x7f08f451
mov dword [esp + 0x40], eax
call fcn.00418470
mov edx, dword [esp + 0x1c]
lea ecx, [ebx - 0x222cf]
push ecx
sub esp, 8
lea edx, [edx - 0x581]
call fcn.00403ec0
sub esp, 0x10
mov dword [esp + 0x54], eax
call fcn.00403580
add esp, 0x1c
mov edx, eax
mov dword [esp + 0x3c], edx
cmp esi, 2
jge 0x41cf2e
mov eax, dword [esp + 0x10]
cmp eax, 0x9ea4
jle 0x41cecc
mov ecx, dword [esp + 0x50]
add ecx, dword [esp + 0x40]
mov dword [esp + 0x6c], ecx
mov ecx, dword [esp + 0x1c]
nop dword [eax + eax]
and dword [esp + 0x44], eax
dec ecx
mov eax, dword [esp + 0x58]
and ebx, 0xa590
mov edx, dword [esp + 0x14]
xor eax, esi
add edx, dword [esp + 0x6c]
or eax, 0x15ad4
sub dword [esp + 0x30], 0x10cd8
inc esi
xor edi, dword [esp + 0x30]
and dword [esp + 0x20], edi
xor ecx, dword [esp + 0x3c]
mov dword [esp + 0x58], eax
mov eax, dword [esp + 0x38]
and eax, dword [esp + 0x40]
mov dword [esp + 0x38], eax
mov eax, dword [esp + 0x28]
or eax, dword [esp + 0x5c]
mov dword [esp + 0x14], edx
or eax, 0x75ac
mov edx, dword [esp + 0x50]
sub eax, 0xd07a
and dword [esp + 0x4c], edx
mov edx, dword [esp + 0x14]
and dword [esp + 0x5c], edx
mov dword [esp + 0x28], eax
mov eax, dword [esp + 0x10]
cmp esi, 2
jl 0x41ce50
mov dword [esp + 0x1c], ecx
jmp 0x41cf2a
mov edx, dword [esp + 0x14]
and dword [esp + 0x44], eax
and ebx, 0xa590
mov eax, dword [esp + 0x50]
and dword [esp + 0x4c], eax
mov eax, dword [esp + 0x28]
sub dword [esp + 0x30], 0x10cd8
or eax, 0x75ac
xor edi, dword [esp + 0x30]
sub eax, 0xd07a
add edx, dword [esp + 0x40]
xor dword [esp + 0x58], esi
inc esi
mov ecx, dword [esp + 0x1c]
xor ecx, dword [esp + 0x3c]
and dword [esp + 0x20], edi
and dword [esp + 0x5c], edx
mov dword [esp + 0x28], eax
mov eax, dword [esp + 0x10]
mov dword [esp + 0x1c], ecx
cmp esi, 2
jl 0x41ced0
mov dword [esp + 0x14], edx
mov edx, dword [esp + 0x3c]
mov ecx, dword [esp + 0x48]
and edi, 0x3d16
mov eax, ecx
or eax, 0x7161
or dword [esp + 0x4c], eax
cmp dword [esp + 0x5c], 0x17bc3
jle 0x41cf74
mov eax, 0x385
sub eax, edi
mov dword [esp + 0x68], eax
cmp ecx, 0x3f3b
je 0x41cf74
xor ecx, dword [esp + 0x28]
xor dword [esp + 0x20], 0x12e5e
inc dword [esp + 0x38]
mov dword [esp + 0x48], ecx
mov eax, dword [esp + 0x50]
lea ecx, [edx + 0x594b]
add eax, 0xfffec60f
push eax
call fcn.00401170
push ecx
mov ecx, dword [esp + 0x1c]
add ecx, 0xfffbd18d
mov dword [esp + 0x6c], eax
push ecx
push ecx
call fcn.00401980
mov edx, dword [esp + 0x50]
sub esi, ebx
sub dword [esp + 0x24], 0x172fa
add esp, 0x10
sub dword [esp + 0x64], edx
mov dword [esp + 0x34], eax
mov eax, dword [esp + 0x44]
add eax, esi
cmp dword [esp + 0x54], 0x7e7
mov dword [esp + 0x44], eax
jne 0x41d012
xor ebx, eax
mov eax, dword [esp + 0x50]
mov ecx, eax
xor ecx, dword [esp + 0x48]
sub ecx, dword [esp + 0x68]
and ecx, esi
cmp dword [esp + 0x4c], 0x12231
mov dword [esp + 0x48], ecx
jge 0x41d012
mov ecx, dword [esp + 0x38]
sub esi, 0x2678
and ecx, dword [esp + 0x1c]
xor eax, dword [esp + 0x20]
or edx, ecx
mov dword [esp + 0x38], ecx
or ebx, 0xe3cf
mov dword [esp + 0x50], eax
mov dword [esp + 0x40], edx
mov ecx, dword [0x47eddc]
mov edx, 0xc6580d02
call fcn.00418470
mov ecx, dword [esp + 0x24]
mov edx, dword [esp + 0x54]
mov dword [0x47edec], eax
mov eax, dword [esp + 0x3c]
add eax, 0xfffe64e3
mov dword [esp + 0x3c], 0
mov dword [esp + 0x5c], eax
mov eax, dword [esp + 0x28]
nop dword [eax + eax]
add dword [esp + 0x34], 0x1451e
add eax, edi
cmp dword [esp + 0x38], 0x1217c
mov dword [esp + 0x28], eax
jge 0x41d111
mov eax, dword [esp + 0x30]
or eax, dword [esp + 0x1c]
mov dword [esp + 0x30], eax
mov eax, dword [esp + 0x58]
and eax, 0x8e3d
cmp dword [esp + 0x34], 0xec77
mov dword [esp + 0x58], eax
jle 0x41d111
add edx, eax
mov eax, dword [esp + 0x28]
xor dword [esp + 0x58], eax
or edx, 0xa0d
mov eax, dword [esp + 0x44]
sub edx, 0x1013
sub eax, dword [esp + 0x60]
cmp dword [esp + 0x5c], 0x359d
mov dword [esp + 0x44], eax
jge 0x41d111
and dword [esp + 0x48], 0x10447
add ecx, 0x557f
sub dword [esp + 0x50], 0x5541
add dword [esp + 0x28], 0xfc90
cmp dword [esp + 0x58], 0x4751
jne 0x41d111
and edx, dword [esp + 0x50]
or edx, dword [esp + 0x40]
or dword [esp + 0x68], edx
mov dword [esp + 0x48], 0
cmp esi, 0xe8a5
jne 0x41d111
add dword [esp + 0x28], 0x4fce
or edi, 0x16d1f
mov eax, dword [esp + 0x44]
sub ecx, 0x1377f
add dword [esp + 0x60], eax
inc dword [esp + 0x64]
add dword [esp + 0x48], 0xb46e
or dword [esp + 0x50], 0x2a18
or dword [esp + 0x68], 0x678d
cmp dword [esp + 0x38], 0x3232
mov eax, dword [esp + 0x28]
jge 0x41d17b
xor dword [esp + 0x68], 0x178d2
sub ebx, 0xe299
cmp edx, 0x138e7
jne 0x41d17b
mov edx, dword [esp + 0x44]
add ecx, 0x157b1
and edx, 0x138e7
xor ecx, 0x65ac
sub esi, 0x10c59
cmp dword [esp + 0x64], 0x366d
jl 0x41d050
push ecx
lea eax, [esi + 0x1470b]
mov dword [esp + 0x58], edx
mov edx, dword [esp + 0x44]
push eax
mov eax, dword [esp + 0x3c]
add eax, 0xffff3608
mov dword [esp + 0x2c], ecx
push eax
mov eax, dword [esp + 0x58]
lea edx, [edx + 0xbc74]
push ecx
add eax, 0xfffcf99e
lea ecx, [esi + 0xfb71]
push eax
call fcn.00403290
add esp, 0x14
mov esi, eax
call fcn.00405180
mov ecx, dword [0x47ee00]
mov edx, 0xc0b381da
mov dword [esp + 0x6c], eax
call fcn.00418470
mov ecx, dword [esp + 0x24]
mov dword [0x47edd4], eax
mov eax, dword [esp + 0x30]
jmp 0x41d1f4
mov esi, dword [esp + 0x50]
mov edx, dword [esp + 0x48]
sub esi, 0x5c66
sub dword [esp + 0x64], edx
add edi, 0x4a50
mov dword [esp + 0x50], esi
mov esi, dword [esp + 0x4c]
and esi, dword [esp + 0x44]
cmp eax, 0xe4d7
jne 0x41d278
and dword [esp + 0x5c], 0x14820
xor esi, edx
mov edx, dword [esp + 0x50]
add edx, dword [esp + 0x3c]
mov dword [esp + 0x50], edx
mov edx, dword [esp + 0x54]
and edx, dword [esp + 0x60]
mov dword [esp + 0x54], edx
cmp edx, 0x1282
jge 0x41d278
mov eax, dword [esp + 0x5c]
or eax, dword [esp + 0x20]
or edi, dword [esp + 0x50]
xor dword [esp + 0x60], 0x77d
and dword [esp + 0x40], 0xf1a5
and dword [esp + 0x44], 0x4b17
mov dword [esp + 0x5c], eax
mov eax, edi
and eax, 0xe4d7
dec dword [esp + 0x64]
mov edx, dword [esp + 0x3c]
add esi, 0x608
and esi, dword [esp + 0x44]
inc ebx
add edx, dword [esp + 0x60]
xor ecx, 0x500b
or eax, dword [esp + 0x68]
mov dword [esp + 0x4c], esi
mov esi, dword [esp + 0x6c]
mov dword [esp + 0x3c], edx
mov edx, dword [esp + 0x54]
mov dword [esp + 0x30], eax
cmp esi, 0x413e
je 0x41d349
cmp esi, 0xb327
mov esi, dword [esp + 0x1c]
jne 0x41d34d
or dword [esp + 0x14], ecx
sub dword [esp + 0x3c], 0x12170
or dword [esp + 0x60], edx
cmp dword [esp + 0x64], 0xd9a3
je 0x41d34d
add esi, dword [esp + 0x58]
xor dword [esp + 0x60], 0x94e1
xor dword [esp + 0x4c], 0xd29
add dword [esp + 0x68], 0x108b
cmp dword [esp + 0x20], 0x174b0
mov dword [esp + 0x1c], esi
je 0x41d34d
mov eax, dword [esp + 0x20]
or edx, 0xdddc
and ecx, dword [esp + 0x68]
add eax, 0x167d0
sub dword [esp + 0x58], 0x11d28
and dword [esp + 0x44], 0x4d04
mov dword [esp + 0x20], eax
and eax, 0x79c2
and dword [esp + 0x5c], eax
and ecx, 0xd741
mov eax, dword [esp + 0x30]
mov dword [esp + 0x54], edx
jmp 0x41d34d
mov esi, dword [esp + 0x1c]
cmp ebx, 0xffffa278
jl 0x41d1f0
mov edi, dword [esp + 0x60]
mov dword [esp + 0x24], ecx
lea ecx, [edi - 0x182cb]
call fcn.00403830
mov eax, dword [esp + 0x58]
push ecx
add eax, 0x41b96
push eax
sub esp, 8
lea eax, [edi - 0x101a2]
push eax
call fcn.00403f90
mov edi, dword [esp + 0x38]
add esp, 0x14
cmp ebx, 0xffffa279
jge 0x41d3d0
mov eax, dword [esp + 0x44]
mov edx, 0xffffa279
mov ecx, dword [esp + 0x5c]
sub edx, ebx
xor ecx, 0x5c8a
or edi, 0x1032e
or eax, 0x416a
or ecx, 0xa054
sub edx, 1
jne 0x41d3a4
mov dword [esp + 0x5c], ecx
mov dword [esp + 0x44], eax
nop dword [eax + eax]
cmp dword [esp + 0x64], 0xffff7ce1
jne 0x41d3e0
call dword [sym.imp.USER32.dll_GetWindowRect]
call fcn.004021a0
sub esp, 8
mov dword [esp + 0x60], eax
call fcn.004018e0
mov ecx, dword [0x47ee00]
add esp, 8
mov edx, 0x82962c8
mov dword [esp + 0x54], eax
call fcn.00418470
mov ecx, dword [0x47ee00]
mov edx, 0x6793c34c
mov dword [0x47ede0], eax
call fcn.00418470
mov ebx, dword [esp + 0x14]
mov edx, dword [esp + 0x40]
dec ebx
mov ecx, dword [esp + 0x68]
sub edx, 0x111cb
mov dword [0x47ede8], eax
mov eax, dword [esp + 0x4c]
add eax, eax
mov dword [esp + 0x50], 0x41d
add dword [esp + 0x64], eax
xor ecx, 0x17f8f
mov eax, dword [esp + 0x44]
xor dword [esp + 0x3c], esi
and eax, edx
inc dword [esp + 0x64]
dec edx
sub dword [esp + 0x58], 0x7e68
cmp eax, 0x85df
jne 0x41d4ad
cmp ecx, 0x1310
jne 0x41d4ad
mov esi, dword [esp + 0x54]
sub edx, 0x17668
sub esi, dword [esp + 0x58]
and ebx, dword [esp + 0x3c]
cmp dword [esp + 0x3c], 0x118db
mov dword [esp + 0x54], esi
mov esi, dword [esp + 0x1c]
jge 0x41d4ad
cmp dword [esp + 0x5c], 0x28bf
jge 0x41d4ad
cmp ebx, 0xc485
je 0x41d4ad
xor dword [esp + 0x50], edi
cmp dword [esp + 0x64], 0x257c
jl 0x41d451
mov esi, dword [esp + 0x54]
lea eax, [ecx + 0xc95b]
push ecx
push eax
lea eax, [esi + 0x7ac2]
push eax
mov eax, dword [esp + 0x48]
push ecx
add eax, 0xffffacde
push eax
mov eax, dword [esp + 0x74]
lea edx, [eax - 0x13]
lea ecx, [eax - 0x10d57]
call fcn.00403290
mov edx, dword [esp + 0x64]
lea eax, [ebx - 0x2647a]
add esp, 0xc
lea edx, [edx + 0x1c6c]
push eax
call fcn.00403690
add esp, 0xc
call fcn.00403170
push 0xee47
mov ecx, 0x18108
call fcn.00401170
add esp, 4
mov ecx, 0x18108
push 0xee47
call fcn.00401170
add esp, 4
mov ecx, 0x18108
push 0xee47
call fcn.00401170
add esp, 4
lea eax, [esi + 0x1bf]
push 0x5ad4
push ecx
push eax
push ecx
push 0x7a
push 0x11df5
push ecx
call fcn.004013a0
add esp, 0x1c
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret