Function at 0x403c60
Capabilities:
Resolve function by parsing pe exports

Disassembly:
push 0xffffffffffffffff
push 0x527220
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
sub esp, 0xf4
push ebx
mov ebx, dword [esp + 0x10c]
push ebp
push esi
push edi
xor ebp, ebp
mov edi, 0x575d94
or ecx, 0xffffffff
xor eax, eax
mov dword [ebx], 0x400
mov dword [ebx + 4], 0x300
mov dword [ebx + 8], 0x10
mov dword [ebx + 0xc], ebp
mov dword [ebx + 0x10], ebp
mov byte [ebx + 0x18], 0
mov dword [ebx + 0x14], 1
repne scasb al, byte es:[edi]
not ecx
dec ecx
add ecx, 0x575d94
push ecx
push 0x575d94
lea ecx, [ebx + 0x60]
call fcn.00405c70
mov edi, 0x57f2d4
or ecx, 0xffffffff
xor eax, eax
mov byte [ebx + 0x19], 0
mov byte [ebx + 0x1a], 0
mov dword [ebx + 0x1c], 0xffffffff
mov dword [ebx + 0x20], ebp
mov dword [ebx + 0x50], 3
repne scasb al, byte es:[edi]
not ecx
dec ecx
lea edx, [ebx + 0x54]
add ecx, 0x57f2d4
push ecx
push 0x57f2d4
mov ecx, edx
call fcn.00405c70
lea eax, [esp + 0x4a]
lea ecx, [esp + 0x18]
push eax
mov dword [esp + 0x110], ebp
call fcn.0050e020
lea ecx, [esp + 0x26]
mov byte [esp + 0x10c], 3
push ecx
lea ecx, [esp + 0x90]
call fcn.0050e020
mov edx, dword [esp + 0x114]
or ecx, 0xffffffff
mov edi, edx
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
dec ecx
mov byte [esp + 0x10c], 4
add ecx, edx
push ecx
push edx
lea ecx, [esp + 0x94]
call fcn.004067c0
lea edx, [esp + 0x18]
push 0x20
lea eax, [esp + 0x90]
push edx
push eax
mov byte [esp + 0x118], 5
call fcn.004c2620
add esp, 0xc
lea ecx, [esp + 0x8c]
mov byte [esp + 0x10c], 3
call fcn.00418e50
mov esi, dword [esp + 0x1c]
mov edi, dword [esp + 0x18]
mov ecx, esi
mov eax, 0x2aaaaaab
sub ecx, edi
mov byte [esp + 0x10c], 2
imul ecx
sar edx, 1
mov ecx, edx
mov dword [esp + 0x4c], ebp
shr ecx, 0x1f
add edx, ecx
je 0x405050
jmp 0x403dd5
mov ebp, dword [esp + 0x4c]
mov ebx, dword [esp + 0x118]
lea ebp, [ebp + ebp*2]
lea edx, [esp + 0x36]
shl ebp, 2
push edx
lea esi, [edi + ebp]
mov ecx, esi
call fcn.004ffc70
push eax
lea ecx, [esp + 0xb4]
mov byte [esp + 0x110], 6
call fcn.0050e020
mov eax, dword [esi + 4]
mov ecx, dword [esi]
push eax
push ecx
lea ecx, [esp + 0xb8]
mov byte [esp + 0x114], 8
call fcn.00406830
mov edx, dword [esp + 0x18]
mov byte [esp + 0x10c], 9
lea eax, [edx + ebp]
push eax
call fcn.004c2de0
mov ecx, dword [esp + 0x1c]
add esp, 4
mov eax, dword [ecx + ebp + 4]
mov esi, dword [ecx + ebp]
lea edx, [ecx + ebp]
sub eax, esi
cmp eax, 4
jbe 0x403ee9
mov edi, 0x575d8c
or ecx, 0xffffffff
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
dec ecx
push ecx
push eax
push 0x575d8c
mov ecx, edx
call fcn.00405140
mov ecx, dword [esp + 0x18]
mov esi, dword [ecx + ebp]
lea edx, [ecx + ebp]
mov ecx, dword [ecx + ebp + 4]
sub ecx, esi
sub ecx, 4
cmp eax, ecx
jne 0x403ee9
mov edi, 0x57f2d4
or ecx, 0xffffffff
xor eax, eax
mov esi, dword [ebx + 0x54]
repne scasb al, byte es:[edi]
lea eax, [ebx + 0x54]
mov dword [esp + 0x10], eax
mov eax, dword [eax + 4]
not ecx
dec ecx
sub eax, esi
cmp eax, ecx
jne 0x403ee9
mov edi, 0x57f2d4
xor eax, eax
repe cmpsb byte [esi], byte es:[edi]
jne 0x403ee9
mov edx, dword [edx]
or ecx, 0xffffffff
inc edx
mov esi, dword [esp + 0x10]
mov edi, edx
repne scasb al, byte es:[edi]
not ecx
dec ecx
add ecx, edx
push ecx
push edx
mov ecx, esi
call fcn.00405c70
mov eax, dword [0x57f188]
mov esi, dword [esi]
push 0xffffffffffffffff
push eax
mov ecx, dword [eax]
call dword [ecx + 0xc]
mov edx, dword [eax]
push esi
push 0x575d78
push eax
call dword [edx + 0x1c]
jmp 0x405000
mov eax, dword [edx + 4]
mov esi, dword [edx]
sub eax, esi
cmp eax, 4
jbe 0x403f49
mov edi, 0x575d70
or ecx, 0xffffffff
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
dec ecx
push ecx
push eax
push 0x575d70
mov ecx, edx
call fcn.00405140
mov ecx, dword [esp + 0x18]
mov esi, dword [ecx + ebp]
lea edx, [ecx + ebp]
mov ecx, dword [ecx + ebp + 4]
sub ecx, esi
sub ecx, 4
cmp eax, ecx
jne 0x403f49
mov edx, esi
or ecx, 0xffffffff
inc edx
xor eax, eax
mov edi, edx
repne scasb al, byte es:[edi]
not ecx
dec ecx
add ecx, edx
push ecx
push edx
lea ecx, [ebx + 0x6c]
call fcn.00405c70
jmp 0x405000
mov esi, dword [edx]
mov edx, dword [edx + 4]
sub edx, esi
mov dword [esp + 0x14], 5
mov dword [esp + 0x10], edx
cmp edx, 5
lea edx, [esp + 0x10]
jb 0x403f69
lea edx, [esp + 0x14]
mov edi, 0x575d68
or ecx, 0xffffffff
xor eax, eax
repne scasb al, byte es:[edi]
mov edi, dword [edx]
mov eax, esi
not ecx
dec ecx
add eax, edi
add ecx, 0x575d68
push ecx
push 0x575d68
push eax
push esi
call fcn.004050b0
add esp, 0x10
test eax, eax
jne 0x403fd7
mov ecx, dword [esp + 0x18]
mov eax, dword [ecx + ebp]
add eax, 5
push eax
call dword [sym.imp.msvcrt.dll_atoi]
mov edx, dword [esp + 0x1c]
mov dword [ebx + 0x10], eax
mov eax, dword [0x57f188]
add esp, 4
mov ebp, dword [edx + ebp]
mov ecx, dword [eax]
push 0xffffffffffffffff
push eax
call dword [ecx + 0xc]
mov edx, dword [eax]
add ebp, 5
push ebp
push 0x575d60
push eax
call dword [edx + 0x1c]
jmp 0x405000
mov esi, dword [esp + 0x18]
mov edi, 0x575d5c
or ecx, 0xffffffff
xor eax, eax
repne scasb al, byte es:[edi]
mov eax, dword [esi + ebp]
mov edx, dword [esi + ebp + 4]
not ecx
dec ecx
sub edx, eax
cmp edx, ecx
jne 0x404011
mov esi, eax
mov edi, 0x575d5c
xor eax, eax
repe cmpsb byte [esi], byte es:[edi]
jne 0x40400d
mov byte [ebx + 0x19], 1
jmp 0x405000
mov esi, dword [esp + 0x18]
mov edx, dword [esi + ebp]
mov eax, dword [esi + ebp + 4]
sub eax, edx
mov dword [esp + 0x10], 4
cmp eax, 4
mov dword [esp + 0x14], eax
lea esi, [esp + 0x14]
jb 0x404033
lea esi, [esp + 0x10]
mov edi, 0x575d54
or ecx, 0xffffffff
xor eax, eax
repne scasb al, byte es:[edi]
mov eax, dword [esi]
not ecx
dec ecx
add ecx, 0x575d54
push ecx
mov ecx, edx
add ecx, eax
push 0x575d54
push ecx
push edx
call fcn.004050b0
add esp, 0x10
test eax, eax
jne 0x404129
mov edx, dword [esp + 0x18]
lea eax, [esp + 0x37]
push eax
lea ecx, [esp + 0x40]
mov ebp, dword [edx + ebp]
mov byte [esp + 0x110], 0xa
lea esi, [ebp + 4]
call fcn.0050e020
mov edi, esi
or ecx, 0xffffffff
xor eax, eax
mov byte [esp + 0x10c], 0xb
repne scasb al, byte es:[edi]
not ecx
dec ecx
add ecx, esi
push ecx
push esi
lea ecx, [esp + 0x44]
call fcn.004067c0
push 0
push 0x22
lea ecx, [esp + 0x44]
mov byte [esp + 0x114], 0xd
call fcn.00406050
push eax
push 0
lea ecx, [esp + 0x44]
call fcn.00405ab0
lea ecx, [esp + 0x3c]
push 0x22
push ecx
call fcn.004c2880
mov eax, dword [esp + 0x48]
mov ecx, dword [esp + 0x44]
add esp, 8
cmp ecx, eax
je 0x4040f8
cmp byte [eax - 1], 0x5c
je 0x4040f8
push 0x5c
lea ecx, [esp + 0x40]
call fcn.00406600
mov eax, dword [esp + 0x40]
lea ecx, [ebx + 0x78]
lea edx, [esp + 0x3c]
cmp edx, ecx
je 0x404113
lea edx, [esp + 0x38]
push edx
push eax
mov eax, dword [esp + 0x44]
push eax
call fcn.00406890
lea ecx, [esp + 0x3c]
mov byte [esp + 0x10c], 9
call fcn.00418e50
jmp 0x405000
mov edx, dword [esp + 0x18]
mov edi, 0x575d48
or ecx, 0xffffffff
xor eax, eax
repne scasb al, byte es:[edi]
mov esi, dword [edx + ebp]
mov eax, dword [edx + ebp + 4]
not ecx
dec ecx
sub eax, esi
cmp eax, ecx
jne 0x40417d
mov edi, 0x575d48
xor eax, eax
repe cmpsb byte [esi], byte es:[edi]
jne 0x40417d
mov dword [ebx + 0x14], 2
mov eax, dword [0x57f188]
push 0xffffffffffffffff
push eax
mov ecx, dword [eax]
call dword [ecx + 0xc]
mov edx, dword [eax]
push 0x575d44
push 0x575d38
push eax
call dword [edx + 0x1c]
jmp 0x405000
mov edi, 0x575d2c
or ecx, 0xffffffff
xor eax, eax
mov esi, dword [edx + ebp]
repne scasb al, byte es:[edi]
mov eax, dword [edx + ebp + 4]
not ecx
dec ecx
sub eax, esi
cmp eax, ecx
jne 0x4041cd
mov edi, 0x575d2c
xor eax, eax
repe cmpsb byte [esi], byte es:[edi]
jne 0x4041cd
mov dword [ebx + 0x14], 1
mov eax, dword [0x57f188]
push 0xffffffffffffffff
push eax
mov ecx, dword [eax]
call dword [ecx + 0xc]
mov edx, dword [eax]
push 0x575d44
push 0x575d20
push eax
call dword [edx + 0x1c]
jmp 0x405000
mov esi, dword [edx + ebp]
mov edx, dword [edx + ebp + 4]
sub edx, esi
mov dword [esp + 0x10], 9
mov dword [esp + 0x14], edx
cmp edx, 9
lea edx, [esp + 0x14]
jb 0x4041ef
lea edx, [esp + 0x10]
mov edi, 0x575d14
or ecx, 0xffffffff
xor eax, eax
repne scasb al, byte es:[edi]
mov eax, dword [edx]
not ecx
dec ecx
add eax, esi
add ecx, 0x575d14
push ecx
push 0x575d14
push eax
push esi
call fcn.004050b0
add esp, 0x10
test eax, eax
jne 0x40425b
mov ecx, dword [esp + 0x18]
mov eax, dword [ecx + ebp]
add eax, 9
push eax
call dword [sym.imp.msvcrt.dll_atoi]
mov edx, dword [esp + 0x1c]
mov dword [ebx + 0x20], eax
mov eax, dword [0x57f188]
add esp, 4
mov ebp, dword [edx + ebp]
mov ecx, dword [eax]
push 0xffffffffffffffff
push eax
call dword [ecx + 0xc]
mov edx, dword [eax]
add ebp, 9
push ebp
push 0x575d08
push eax
call dword [edx + 0x1c]
jmp 0x405000
mov ebx, dword [esp + 0x18]
mov edi, 0x575d00
or ecx, 0xffffffff
xor eax, eax
repne scasb al, byte es:[edi]
mov esi, dword [ebx + ebp]
mov eax, dword [ebx + ebp + 4]
not ecx
dec ecx
sub eax, esi
cmp eax, ecx
jne 0x404296
mov edi, 0x575d00
xor edx, edx
repe cmpsb byte [esi], byte es:[edi]
jne 0x404296
mov eax, dword [esp + 0x118]
mov byte [eax + 0x1a], 1
jmp 0x405000
mov edx, dword [ebx + ebp]
mov ebx, dword [ebx + ebp + 4]
sub ebx, edx
mov dword [esp + 0x10], 4
cmp ebx, 4
mov dword [esp + 0x14], ebx
lea esi, [esp + 0x14]
jb 0x4042b8
lea esi, [esp + 0x10]
mov edi, 0x575cf8
or ecx, 0xffffffff
xor eax, eax
mov ebx, dword [esi]
repne scasb al, byte es:[edi]
not ecx
dec ecx
add ecx, 0x575cf8
push ecx
mov ecx, edx
add ecx, ebx
push 0x575cf8
push ecx
push edx
call fcn.004050b0
add esp, 0x10
test eax, eax
jne 0x40434c
mov edi, dword [esp + 0x118]
fild dword [edi + 0x1c]
fdivr dword [0x545334]
fadd dword [0x545330]
call sub.msvcrt.dll__ftol
mov edx, dword [esp + 0x18]
mov dword [edi + 0x1c], eax
mov ebp, dword [edx + ebp]
add ebp, 4
push ebp
call dword [sym.imp.msvcrt.dll_atoi]
mov esi, eax
add esp, 4
mov dword [edi + 0x1c], esi
mov eax, dword [0x57f188]
push 0xffffffffffffffff
push eax
mov ecx, dword [eax]
call dword [ecx + 0xc]
mov edi, eax
push esi
push 0x575a40
mov ebx, dword [edi]
call fcn.004c2ae0
add esp, 8
push eax
push 0x575ce8
push edi
call dword [ebx + 0x1c]
jmp 0x405000
mov eax, dword [esp + 0x18]
mov dword [esp + 0x10], 6
lea esi, [esp + 0x14]
mov edx, dword [eax + ebp]
mov eax, dword [eax + ebp + 4]
sub eax, edx
cmp eax, 6
mov dword [esp + 0x14], eax
jb 0x404372
lea esi, [esp + 0x10]
mov edi, 0x575ce0
or ecx, 0xffffffff
xor eax, eax
repne scasb al, byte es:[edi]
mov eax, dword [esi]
not ecx
dec ecx
add eax, edx
add ecx, 0x575ce0
push ecx
push 0x575ce0
push eax
push edx
call fcn.004050b0
add esp, 0x10
test eax, eax
jne 0x40448a
mov ecx, dword [esp + 0x18]
lea edx, [esp + 0x53]
push edx
mov byte [esp + 0x110], 0xe
mov ebp, dword [ecx + ebp]
lea ecx, [esp + 0x2c]
lea esi, [ebp + 6]
call fcn.0050e020
mov edi, esi
or ecx, 0xffffffff
xor eax, eax
mov byte [esp + 0x10c], 0xf
repne scasb al, byte es:[edi]
not ecx
dec ecx
add ecx, esi
push ecx
push esi
lea ecx, [esp + 0x30]
call fcn.004067c0
push 0
push 0x22
lea ecx, [esp + 0x30]
mov byte [esp + 0x114], 0x11
call fcn.00406050
push eax
push 0
lea ecx, [esp + 0x30]
call fcn.00405ab0
lea eax, [esp + 0x28]
push 0x22
push eax
call fcn.004c2880
mov eax, dword [esp + 0x34]
mov ecx, dword [esp + 0x30]
add esp, 8
cmp ecx, eax
je 0x404435
cmp byte [eax - 1], 0x5c
je 0x404435
push 0x5c
lea ecx, [esp + 0x2c]
call fcn.00406600
mov eax, dword [esp + 0x2c]
mov ecx, dword [esp + 0x118]
lea edx, [esp + 0x28]
add ecx, 0x24
cmp edx, ecx
je 0x404457
lea edx, [esp + 0x3a]
push edx
push eax
mov eax, dword [esp + 0x30]
push eax
call fcn.00406890
mov eax, dword [0x57f188]
mov esi, dword [esp + 0x28]
push 0xffffffffffffffff
push eax
mov ecx, dword [eax]
call dword [ecx + 0xc]
mov edx, dword [eax]
push esi
push 0x5754c0
push eax
call dword [edx + 0x1c]
lea ecx, [esp + 0x28]
mov byte [esp + 0x10c], 9
call fcn.00418e50
jmp 0x405000
mov eax, dword [esp + 0x18]
mov dword [esp + 0x10], 0xe
lea esi, [esp + 0x14]
mov edx, dword [eax + ebp]
mov eax, dword [eax + ebp + 4]
sub eax, edx
cmp eax, 0xe
mov dword [esp + 0x14], eax
jb 0x4044b0
lea esi, [esp + 0x10]
mov edi, 0x575cd0
or ecx, 0xffffffff
xor eax, eax
mov ebx, dword [esi]
repne scasb al, byte es:[edi]
not ecx
dec ecx
mov eax, edx
add ecx, 0x575cd0
add eax, ebx
push ecx
push 0x575cd0
push eax
push edx
call fcn.004050b0
add esp, 0x10
test eax, eax
jne 0x40450e
mov eax, dword [0x57f188]
push 0xffffffffffffffff
push eax
mov ecx, dword [eax]
call dword [ecx + 0xc]
mov esi, eax
push 1
push 0x575a40
mov edi, dword [esi]
call fcn.004c2ae0
add esp, 8
push eax
push 0x575cbc
push esi
call dword [edi + 0x1c]
jmp 0x405000
mov eax, dword [esp + 0x18]
mov ebx, 3
mov dword [esp + 0x10], ebx
lea esi, [esp + 0x14]
mov edx, dword [eax + ebp]
mov eax, dword [eax + ebp + 4]
sub eax, edx
cmp eax, ebx
mov dword [esp + 0x14], eax
jb 0x404534
lea esi, [esp + 0x10]
mov edi, 0x575cb8
or ecx, 0xffffffff
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
dec ecx
mov eax, edx
add ecx, 0x575cb8
push ecx
mov ecx, dword [esi]
add eax, ecx
push 0x575cb8
push eax
push edx
call fcn.004050b0
add esp, 0x10
test eax, eax
jne 0x40466a
mov ecx, dword [esp + 0x18]
lea edx, [esp + 0x55]
push edx
mov byte [esp + 0x110], 0x12
mov ebp, dword [ecx + ebp]
lea ecx, [esp + 0x60]
lea esi, [ebp + 3]
call fcn.0050e020
mov edi, esi
or ecx, 0xffffffff
xor eax, eax
mov byte [esp + 0x10c], 0x13
repne scasb al, byte es:[edi]
not ecx
dec ecx
add ecx, esi
push ecx
push esi
lea ecx, [esp + 0x64]
call fcn.004067c0
push 0
push 0x22
lea ecx, [esp + 0x64]
mov byte [esp + 0x114], 0x15
call fcn.00406050
push eax
push 0
lea ecx, [esp + 0x64]
call fcn.00405ab0
lea eax, [esp + 0x5c]
push 0x22
push eax
call fcn.004c2880
mov ecx, dword [esp + 0x64]
mov eax, dword [esp + 0x68]
add esp, 8
cmp ecx, eax
jne 0x404637
push 0x575cac
lea edx, [esp + 0xd8]
push 0x57f2c8
push edx
call fcn.00406250
add esp, 0xc
lea ecx, [esp + 0x5c]
mov byte [esp + 0x10c], 0x16
cmp eax, ecx
je 0x404623
mov ecx, dword [eax + 4]
mov eax, dword [eax]
lea edx, [esp + 0x39]
push edx
push ecx
push eax
lea ecx, [esp + 0x68]
call fcn.00406890
lea ecx, [esp + 0xd4]
mov byte [esp + 0x10c], 0x15
call fcn.00418e50
mov eax, dword [0x57f188]
mov esi, dword [esp + 0x5c]
push 0xffffffffffffffff
push eax
mov ecx, dword [eax]
call dword [ecx + 0xc]
mov edx, dword [eax]
push esi
push 0x575c98
push eax
call dword [edx + 0x1c]
lea ecx, [esp + 0x5c]
mov byte [esp + 0x10c], 9
call fcn.00418e50
jmp 0x405000
mov eax, dword [esp + 0x18]
mov dword [esp + 0x10], 9
lea esi, [esp + 0x14]
mov edx, dword [eax + ebp]
mov eax, dword [eax + ebp + 4]
sub eax, edx
cmp eax, 9
mov dword [esp + 0x14], eax
jb 0x404690
lea esi, [esp + 0x10]
mov edi, 0x575c8c
or ecx, 0xffffffff
xor eax, eax
repne scasb al, byte es:[edi]
mov eax, dword [esi]
not ecx
dec ecx
add eax, edx
add ecx, 0x575c8c
push ecx
push 0x575c8c
push eax
push edx
call fcn.004050b0
add esp, 0x10
test eax, eax
jne 0x4047f4
mov ecx, dword [esp + 0x18]
lea edx, [esp + 0x57]
push edx
mov byte [esp + 0x110], 0x17
mov ebp, dword [ecx + ebp]
lea ecx, [esp + 0x78]
lea esi, [ebp + 9]
call fcn.0050e020
mov edi, esi
or ecx, 0xffffffff
xor eax, eax
mov byte [esp + 0x10c], 0x18
repne scasb al, byte es:[edi]
not ecx
dec ecx
add ecx, esi
push ecx
push esi
lea ecx, [esp + 0x7c]
call fcn.004067c0
push 0
push 0x22
lea ecx, [esp + 0x7c]
mov byte [esp + 0x114], 0x1a
call fcn.00406050
push eax
push 0
lea ecx, [esp + 0x7c]
call fcn.00405ab0
lea eax, [esp + 0x74]
push 0x22
push eax
call fcn.004c2880
mov ecx, dword [esp + 0x7c]
mov eax, dword [esp + 0x80]
add esp, 8
cmp ecx, eax
jne 0x404797
push 0x575cac
lea edx, [esp + 0xf0]
push 0x57f2c8
push edx
call fcn.00406250
add esp, 0xc
lea ecx, [esp + 0x74]
mov byte [esp + 0x10c], 0x1b
cmp eax, ecx
je 0x404783
mov ecx, dword [eax + 4]
mov eax, dword [eax]
lea edx, [esp + 0x3b]
push edx
push ecx
push eax
lea ecx, [esp + 0x80]
call fcn.00406890
lea ecx, [esp + 0xec]
mov byte [esp + 0x10c], 0x1a
call fcn.00418e50
mov eax, dword [0x57f188]
mov esi, dword [esp + 0x74]
push 0xffffffffffffffff
push eax
mov ecx, dword [eax]
call dword [ecx + 0xc]
mov edx, dword [eax]
push esi
push 0x575c78
push eax
call dword [edx + 0x1c]
mov eax, dword [0x57f188]
push 0xffffffffffffffff
push eax
mov ecx, dword [eax]
call dword [ecx + 0xc]
mov esi, eax
push 1
push 0x575a40
mov edi, dword [esi]
call fcn.004c2ae0
add esp, 8
push eax
push 0x575c68
push esi
call dword [edi + 0x1c]
lea ecx, [esp + 0x74]
mov byte [esp + 0x10c], 9
call fcn.00418e50
jmp 0x405000
mov eax, dword [esp + 0x18]
mov dword [esp + 0x10], ebx
lea esi, [esp + 0x14]
mov edx, dword [eax + ebp]
mov eax, dword [eax + ebp + 4]
sub eax, edx
cmp eax, ebx
mov dword [esp + 0x14], eax
jb 0x404815
lea esi, [esp + 0x10]
mov edi, 0x575c64
or ecx, 0xffffffff
xor eax, eax
mov ebx, dword [esi]
repne scasb al, byte es:[edi]
not ecx
dec ecx
mov eax, edx
add ecx, 0x575c64
add eax, ebx
push ecx
push 0x575c64
push eax
push edx
call fcn.004050b0
add esp, 0x10
test eax, eax
jne 0x40494b
mov ecx, dword [esp + 0x18]
lea edx, [esp + 0x59]
push edx
mov byte [esp + 0x110], 0x1c
mov ebp, dword [ecx + ebp]
lea ecx, [esp + 0x6c]
lea esi, [ebp + 3]
call fcn.0050e020
mov edi, esi
or ecx, 0xffffffff
xor eax, eax
mov byte [esp + 0x10c], 0x1d
repne scasb al, byte es:[edi]
not ecx
dec ecx
add ecx, esi
push ecx
push esi
lea ecx, [esp + 0x70]
call fcn.004067c0
push 0
push 0x22
lea ecx, [esp + 0x70]
mov byte [esp + 0x114], 0x1f
call fcn.00406050
push eax
push 0
lea ecx, [esp + 0x70]
call fcn.00405ab0
lea eax, [esp + 0x68]
push 0x22
push eax
call fcn.004c2880
mov ecx, dword [esp + 0x70]
mov eax, dword [esp + 0x74]
add esp, 8
cmp ecx, eax
jne 0x404918
push 0x575cac
lea edx, [esp + 0xe4]
push 0x57f2c8
push edx
call fcn.00406250
add esp, 0xc
lea ecx, [esp + 0x68]
mov byte [esp + 0x10c], 0x20
cmp eax, ecx
je 0x404904
mov ecx, dword [eax + 4]
mov eax, dword [eax]
lea edx, [esp + 0x49]
push edx
push ecx
push eax
lea ecx, [esp + 0x74]
call fcn.00406890
lea ecx, [esp + 0xe0]
mov byte [esp + 0x10c], 0x1f
call fcn.00418e50
mov eax, dword [0x57f188]
mov esi, dword [esp + 0x68]
push 0xffffffffffffffff
push eax
mov ecx, dword [eax]
call dword [ecx + 0xc]
mov edx, dword [eax]
push esi
push 0x575c78
push eax
call dword [edx + 0x1c]
lea ecx, [esp + 0x68]
mov byte [esp + 0x10c], 9
call fcn.00418e50
jmp 0x405000
mov eax, dword [esp + 0x18]
mov ebx, 8
mov dword [esp + 0x10], ebx
lea esi, [esp + 0x14]
mov edx, dword [eax + ebp]
mov eax, dword [eax + ebp + 4]
sub eax, edx
cmp eax, ebx
mov dword [esp + 0x14], eax
jb 0x404971
lea esi, [esp + 0x10]
mov edi, 0x575c58
or ecx, 0xffffffff
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
dec ecx
mov eax, edx
add ecx, 0x575c58
push ecx
mov ecx, dword [esi]
add eax, ecx
push 0x575c58
push eax
push edx
call fcn.004050b0
add esp, 0x10
test eax, eax
jne 0x404a5d
mov ecx, dword [esp + 0x18]
lea edx, [esp + 0x5b]
push edx
mov byte [esp + 0x110], 0x21
mov ebp, dword [ecx + ebp]
lea ecx, [esp + 0xc0]
lea esi, [ebp + 8]
call fcn.0050e020
mov edi, esi
or ecx, 0xffffffff
xor eax, eax
mov byte [esp + 0x10c], 0x22
repne scasb al, byte es:[edi]
not ecx
dec ecx
add ecx, esi
push ecx
push esi
lea ecx, [esp + 0xc4]
call fcn.004067c0
push 0
push 0x22
lea ecx, [esp + 0xc4]
mov byte [esp + 0x114], 0x24
call fcn.00406050
push eax
push 0
lea ecx, [esp + 0xc4]
call fcn.00405ab0
lea eax, [esp + 0xbc]
push 0x22
push eax
call fcn.004c2880
mov eax, dword [0x57f188]
mov esi, dword [esp + 0xc4]
add esp, 8
mov ecx, dword [eax]
push 0xffffffffffffffff
push eax
call dword [ecx + 0xc]
mov edx, dword [eax]
push esi
push 0x575af8
push eax
call dword [edx + 0x1c]
lea ecx, [esp + 0xbc]
mov byte [esp + 0x10c], 9
call fcn.00418e50
jmp 0x405000
mov eax, dword [esp + 0x18]
mov dword [esp + 0x10], ebx
lea esi, [esp + 0x14]
mov edx, dword [eax + ebp]
mov eax, dword [eax + ebp + 4]
sub eax, edx
cmp eax, ebx
mov dword [esp + 0x14], eax
jb 0x404a7e
lea esi, [esp + 0x10]
mov edi, 0x575c4c
or ecx, 0xffffffff
xor eax, eax
mov ebx, dword [esi]
repne scasb al, byte es:[edi]
not ecx
dec ecx
mov eax, edx
add ecx, 0x575c4c
add eax, ebx
push ecx
push 0x575c4c
push eax
push edx
call fcn.004050b0
add esp, 0x10
test eax, eax
jne 0x404b7b
mov eax, dword [0x57f188]
mov ecx, dword [esp + 0x18]
push 0xfffffffffffffffe
push eax
mov edx, dword [eax]
mov esi, dword [ecx + ebp]
call dword [edx + 0xc]
mov ecx, dword [eax]
push 1
push 0
push esi
push 0x64
push eax
call dword [ecx + 0x1c]
mov edx, dword [esp + 0x18]
lea eax, [esp + 0x4b]
push eax
lea ecx, [esp + 0xa8]
mov ebp, dword [edx + ebp]
mov byte [esp + 0x110], 0x25
lea esi, [ebp + 8]
call fcn.0050e020
mov edi, esi
or ecx, 0xffffffff
xor eax, eax
mov byte [esp + 0x10c], 0x26
repne scasb al, byte es:[edi]
not ecx
dec ecx
add ecx, esi
push ecx
push esi
lea ecx, [esp + 0xac]
call fcn.004067c0
lea ecx, [esp + 0xa4]
push 0x3a
push ecx
mov byte [esp + 0x114], 0x28
call fcn.004c2880
mov edx, dword [esp + 0x120]
lea eax, [esp + 0xac]
add esp, 8
lea ecx, [edx + 0x30]
cmp eax, ecx
je 0x404b62
mov eax, dword [esp + 0xa8]
lea edx, [esp + 0x56]
push edx
mov edx, dword [esp + 0xa8]
push eax
push edx
call fcn.00406890
lea ecx, [esp + 0xa4]
mov byte [esp + 0x10c], 9
call fcn.00418e50
jmp 0x405000
mov eax, dword [esp + 0x18]
mov ebx, 5
mov dword [esp + 0x10], ebx
lea esi, [esp + 0x14]
mov edx, dword [eax + ebp]
mov eax, dword [eax + ebp + 4]
sub eax, edx
cmp eax, ebx
mov dword [esp + 0x14], eax
jb 0x404ba1
lea esi, [esp + 0x10]
mov edi, 0x575c44
or ecx, 0xffffffff
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
dec ecx
mov eax, edx
add ecx, 0x575c44
push ecx
mov ecx, dword [esi]
add eax, ecx
push 0x575c44
push eax
push edx
call fcn.004050b0
add esp, 0x10
test eax, eax
jne 0x404c8f
mov ecx, dword [esp + 0xb0]
lea edx, [esp + 0x52]
push edx
mov byte [esp + 0x110], 0x29
lea esi, [ecx + 5]
lea ecx, [esp + 0x90]
call fcn.0050e020
mov edi, esi
or ecx, 0xffffffff
xor eax, eax
mov byte [esp + 0x10c], 0x2a
repne scasb al, byte es:[edi]
not ecx
dec ecx
add ecx, esi
push ecx
push esi
lea ecx, [esp + 0x94]
call fcn.004067c0
mov edi, 0x57f2d4
or ecx, 0xffffffff
xor eax, eax
mov edx, dword [esp + 0x90]
repne scasb al, byte es:[edi]
mov eax, dword [esp + 0x8c]
mov byte [esp + 0x10c], 0x2c
not ecx
dec ecx
sub edx, eax
cmp edx, ecx
jne 0x404c63
mov edi, 0x57f2d4
mov esi, eax
xor edx, edx
repe cmpsb byte [esi], byte es:[edi]
jne 0x404c63
mov eax, dword [esp + 0x118]
mov dword [eax + 0x3c], 0xffffffff
jmp 0x404c76
push eax
call fcn.004c2b30
mov ecx, dword [esp + 0x11c]
add esp, 4
mov dword [ecx + 0x3c], eax
lea ecx, [esp + 0x8c]
mov byte [esp + 0x10c], 9
call fcn.00418e50
jmp 0x405000
mov eax, dword [esp + 0x18]
mov dword [esp + 0x10], 9
lea esi, [esp + 0x14]
mov edx, dword [eax + ebp]
mov eax, dword [eax + ebp + 4]
sub eax, edx
cmp eax, 9
mov dword [esp + 0x14], eax
jb 0x404cb5
lea esi, [esp + 0x10]
mov edi, 0x575c38
or ecx, 0xffffffff
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
dec ecx
mov eax, edx
add ecx, 0x575c38
push ecx
mov ecx, dword [esi]
add eax, ecx
push 0x575c38
push eax
push edx
call fcn.004050b0
add esp, 0x10
test eax, eax
jne 0x404db4
mov ecx, dword [esp + 0xb0]
lea edx, [esp + 0x5a]
push edx
mov byte [esp + 0x110], 0x2d
lea esi, [ecx + 9]
lea ecx, [esp + 0x84]
call fcn.0050e020
mov edi, esi
or ecx, 0xffffffff
xor eax, eax
mov byte [esp + 0x10c], 0x2e
repne scasb al, byte es:[edi]
not ecx
dec ecx
add ecx, esi
push ecx
push esi
lea ecx, [esp + 0x88]
call fcn.004067c0
push 0
push 0x22
lea ecx, [esp + 0x88]
mov byte [esp + 0x114], 0x30
call fcn.00406050
push eax
push 0
lea ecx, [esp + 0x88]
call fcn.00405ab0
lea eax, [esp + 0x80]
push 0x22
push eax
call fcn.004c2880
mov ecx, dword [esp + 0x120]
lea edx, [esp + 0x88]
add esp, 8
mov byte [ecx + 0x40], 1
add ecx, 0x44
cmp edx, ecx
je 0x404d9b
mov edx, dword [esp + 0x84]
lea eax, [esp + 0x54]
push eax
mov eax, dword [esp + 0x84]
push edx
push eax
call fcn.00406890
lea ecx, [esp + 0x80]
mov byte [esp + 0x10c], 9
call fcn.00418e50
jmp 0x405000
mov eax, dword [esp + 0x18]
mov dword [esp + 0x10], ebx
lea esi, [esp + 0x14]
mov edx, dword [eax + ebp]
mov eax, dword [eax + ebp + 4]
sub eax, edx
cmp eax, ebx
mov dword [esp + 0x14], eax
jb 0x404dd5
lea esi, [esp + 0x10]
mov edi, 0x575c30
or ecx, 0xffffffff
xor eax, eax
repne scasb al, byte es:[edi]
mov eax, dword [esi]
not ecx
dec ecx
add ecx, 0x575c30
push ecx
mov ecx, edx
add ecx, eax
push 0x575c30
push ecx
push edx
call fcn.004050b0
add esp, 0x10
test eax, eax
jne 0x404eed
mov edx, dword [esp + 0xb0]
lea eax, [esp + 0x58]
push eax
lea ecx, [esp + 0xcc]
mov byte [esp + 0x110], 0x31
lea esi, [edx + 5]
call fcn.0050e020
mov edi, esi
or ecx, 0xffffffff
xor eax, eax
mov byte [esp + 0x10c], 0x32
repne scasb al, byte es:[edi]
not ecx
dec ecx
add ecx, esi
push ecx
push esi
lea ecx, [esp + 0xd0]
call fcn.004067c0
push 0
push 0x22
lea ecx, [esp + 0xd0]
mov byte [esp + 0x114], 0x34
call fcn.00406050
push eax
push 0
lea ecx, [esp + 0xd0]
call fcn.00405ab0
lea ecx, [esp + 0xc8]
push 0x22
push ecx
call fcn.004c2880
lea edx, [esp + 0xd0]
lea eax, [esp + 0x100]
push edx
push eax
call fcn.004059b0
add esp, 0x10
mov esi, dword [eax]
mov eax, dword [0x57f188]
push 0xffffffffffffffff
push eax
mov ecx, dword [eax]
mov byte [esp + 0x114], 0x35
call dword [ecx + 0xc]
mov edx, dword [eax]
push esi
push 0x575c08
push eax
call dword [edx + 0x18]
lea ecx, [esp + 0xf8]
mov byte [esp + 0x10c], 0x34
call fcn.00418e50
lea ecx, [esp + 0xc8]
mov byte [esp + 0x10c], 9
call fcn.00418e50
jmp 0x405000
mov eax, dword [esp + 0x18]
mov dword [esp + 0x10], ebx
lea esi, [esp + 0x14]
mov edx, dword [eax + ebp]
mov ebp, dword [eax + ebp + 4]
sub ebp, edx
cmp ebp, ebx
mov dword [esp + 0x14], ebp
jb 0x404f0e
lea esi, [esp + 0x10]
mov edi, 0x575c00
or ecx, 0xffffffff
xor eax, eax
repne scasb al, byte es:[edi]
mov eax, dword [esi]
not ecx
dec ecx
add eax, edx
add ecx, 0x575c00
push ecx
push 0x575c00
push eax
push edx
call fcn.004050b0
add esp, 0x10
test eax, eax
jne 0x405000
mov ecx, dword [esp + 0xb0]
lea edx, [esp + 0x27]
push edx
mov byte [esp + 0x110], 0x36
lea esi, [ecx + 5]
lea ecx, [esp + 0x9c]
call fcn.0050e020
mov edi, esi
or ecx, 0xffffffff
xor eax, eax
lea edx, [esp + 0x26]
repne scasb al, byte es:[edi]
mov al, byte [esp + 0x27]
push edx
not ecx
dec ecx
mov byte [esp + 0x110], 0x37
add ecx, esi
mov byte [esp + 0x2a], al
push ecx
push esi
lea ecx, [esp + 0xa4]
call fcn.004012f0
push 0
push 0x22
lea ecx, [esp + 0xa0]
mov byte [esp + 0x114], 0x39
call fcn.00406050
push eax
push 0
lea ecx, [esp + 0xa0]
call fcn.00405ab0
lea eax, [esp + 0x98]
push 0x22
push eax
call fcn.004c2880
mov eax, dword [0x57f188]
mov esi, dword [esp + 0xa0]
add esp, 8
mov ecx, dword [eax]
push 0xffffffffffffffff
push eax
call dword [ecx + 0xc]
mov edx, dword [eax]
push esi
push 0x5755cc
push eax
call dword [edx + 0x1c]
lea ecx, [esp + 0x98]
mov byte [esp + 0x10c], 0x3a
call fcn.00418e50
lea ecx, [esp + 0xb0]
mov byte [esp + 0x10c], 0x3b
call fcn.00418e50
mov esi, dword [esp + 0x1c]
mov edi, dword [esp + 0x18]
mov ecx, esi
mov eax, 0x2aaaaaab
sub ecx, edi
mov ebx, dword [esp + 0x4c]
imul ecx
sar edx, 1
mov eax, edx
inc ebx
shr eax, 0x1f
add edx, eax
mov byte [esp + 0x10c], 2
cmp ebx, edx
mov dword [esp + 0x4c], ebx
jb 0x403dca
mov ebx, dword [esp + 0x118]
cmp dword [ebx + 0x14], 2
jne 0x40505d
mov dword [ebx + 0x10], 0
cmp edi, esi
mov dword [esp + 0x10c], 0x3c
je 0x40507c
push 0
mov ecx, edi
call fcn.004cda70
add edi, 0xc
cmp edi, esi
jne 0x40506c
lea ecx, [esp + 0x18]
mov dword [esp + 0x10c], 0xffffffff
call fcn.00418e50
mov ecx, dword [esp + 0x104]
pop edi
pop esi
pop ebp
pop ebx
mov dword fs:[0], ecx
add esp, 0x100
ret