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

Disassembly:
push 0xffffffffffffffff
push 0x475292
mov eax, dword fs:[0]
push eax
sub esp, 0xd0
mov eax, dword [0x492740]
xor eax, esp
mov dword [esp + 0xcc], eax
push ebx
push ebp
push esi
push edi
mov eax, dword [0x492740]
xor eax, esp
push eax
lea eax, [esp + 0xe4]
mov dword fs:[0], eax
cmp byte [esp + 0xfc], 0
mov esi, dword [esp + 0xf4]
mov eax, dword [esp + 0xf8]
mov ebp, ecx
mov dword [esp + 0x1c], esi
mov dword [esp + 0x18], eax
je 0x4145ff
mov ecx, dword [esi + 0xc]
mov eax, dword [esi + 0x10]
mov edx, ecx
sub edx, eax
cmp edx, 1
jb 0x4147a1
mov edx, dword [esi + 4]
cmp byte [eax + edx], 0xa
jne 0x4147a1
add eax, 1
cmp eax, ecx
mov dword [esi + 0x10], eax
jne 0x4145ff
xor eax, eax
mov dword [esi + 0x10], eax
mov dword [esi + 0xc], eax
lea edi, [esp + 0x58]
mov ecx, esi
call fcn.00415240
test al, al
je 0x4147a1
mov eax, dword [esp + 0x58]
mov ebx, eax
shr ebx, 1
mov cl, bl
not cl
and cl, 1
mov byte [esp + 0x16], cl
mov ecx, eax
shr ecx, 2
mov dword [esp + 0x20], ecx
mov dl, al
mov ecx, eax
and ecx, 7
not dl
and dl, 1
cmp cl, 7
sete byte [esp + 0x17]
mov ecx, eax
shr ecx, 3
and cl, 1
shr eax, 4
test dl, dl
mov byte [esp + 0x15], cl
mov dword [esp + 0x78], eax
je 0x41467b
lea esi, [ebp + 4]
mov edi, ebx
call fcn.00415490
mov esi, dword [esp + 0x18]
mov edi, eax
call fcn.0040dca0
push esi
mov ecx, edi
call fcn.0040ed30
jmp 0x414da4
cmp byte [esp + 0x17], 0
je 0x4147a8
xor eax, eax
mov edi, 0x483374
mov dword [esp + 0x24], edi
mov dword [esp + 0x2c], 1
mov dword [esp + 0x34], eax
mov dword [esp + 0x38], eax
push eax
push esi
lea ebx, [esp + 0x2c]
mov ecx, ebp
mov dword [esp + 0xf4], eax
call fcn.00413b30
test al, al
je 0x414789
cmp dword [esp + 0x2c], 0x11
jne 0x414789
mov edi, dword [esp + 0x34]
push 0x4834bc
call fcn.004102b0
add esp, 4
test al, al
je 0x414784
mov edx, ebx
push edx
lea ecx, [esp + 0xbc]
call fcn.0040e300
sub esp, 0x1c
lea eax, [esp + 0xd4]
mov ecx, esp
mov dword [esp + 0x98], esp
push eax
mov byte [esp + 0x10c], 1
call fcn.00403ed0
mov ebx, dword [esp + 0x34]
mov esi, ebx
call fcn.0040e880
lea ecx, [esp + 0xb8]
mov byte [esp + 0xec], 0
call fcn.00403f20
mov ecx, dword [esp + 0x1c]
push ebx
push ecx
mov ecx, ebp
call fcn.00413450
test al, al
jne 0x414764
mov dword [esp + 0xec], 0xffffffff
lea esi, [esp + 0x24]
mov dword [esp + 0x24], 0x483374
call fcn.0040dca0
xor al, al
jmp 0x414da6
lea esi, [ebp + 4]
call fcn.004154c0
mov dword [esp + 0xec], 0xffffffff
mov dword [esp + 0x24], 0x483374
jmp 0x414d9b
mov edi, 0x483374
mov dword [esp + 0xec], 0xffffffff
lea esi, [esp + 0x24]
mov dword [esp + 0x24], edi
call fcn.0040dca0
xor al, al
jmp 0x414da6
lea esi, [ebp + 4]
mov ecx, esi
mov dword [esp + 0x7c], esi
call fcn.00415470
mov dword [esp + 0x58], eax
xor eax, eax
mov edi, 0x483374
mov dword [esp + 0x24], edi
mov dword [esp + 0x2c], 1
mov dword [esp + 0x34], eax
mov dword [esp + 0x38], eax
lea ebx, [esp + 0x24]
mov dword [esp + 0xec], 2
call fcn.004154c0
xor eax, eax
mov esi, 1
mov dword [esp + 0x5c], edi
mov dword [esp + 0x64], esi
mov dword [esp + 0x6c], eax
mov dword [esp + 0x70], eax
cmp byte [esp + 0x16], al
mov byte [esp + 0xec], 3
je 0x414829
mov edi, dword [esp + 0x20]
lea esi, [ebp + 0x14]
call fcn.00415490
push eax
lea eax, [esp + 0x60]
call fcn.0040dda0
jmp 0x4149de
lea ecx, [ebp + 0x14]
call fcn.00415470
mov dword [esp + 0x74], eax
xor eax, eax
mov dword [esp + 0xb8], edi
mov dword [esp + 0xc0], esi
mov dword [esp + 0xc8], eax
mov dword [esp + 0xcc], eax
lea edx, [esp + 0xb8]
push edx
lea eax, [esp + 0x28]
mov byte [esp + 0xf0], 4
call fcn.0040dda0
mov byte [esp + 0xec], 3
lea esi, [esp + 0xb8]
mov dword [esp + 0xb8], edi
call fcn.0040dca0
lea ebx, [esp + 0x24]
lea esi, [ebp + 0x14]
call fcn.004154c0
lea eax, [esp + 0x15]
push eax
push 0x4834e0
lea ecx, [esp + 0x64]
push ecx
call fcn.0040e6c0
call fcn.0040ddc0
xor eax, eax
mov dword [esp + 0x3c], edi
mov dword [esp + 0x44], 1
mov dword [esp + 0x4c], eax
mov dword [esp + 0x50], eax
mov edx, dword [esp + 0x1c]
push eax
push edx
lea ebx, [esp + 0x44]
mov ecx, ebp
mov byte [esp + 0xf4], 5
call fcn.00413b30
test al, al
je 0x414a41
mov eax, ebx
push eax
push 0x4834f4
lea ecx, [esp + 0x64]
push ecx
call fcn.0040e6c0
call fcn.0040dda0
cmp dword [esp + 0x78], 0
mov dword [esp + 0x20], 0
jbe 0x4149a8
xor eax, eax
mov dword [esp + 0xb8], edi
mov dword [esp + 0xc0], 1
mov dword [esp + 0xc8], eax
mov dword [esp + 0xcc], eax
mov edx, dword [esp + 0x1c]
push eax
push edx
lea ebx, [esp + 0xc0]
mov ecx, ebp
mov byte [esp + 0xf4], 6
call fcn.00413b30
test al, al
je 0x414a26
lea eax, [esp + 0x20]
push eax
push 0x483508
lea ecx, [esp + 0x64]
push ecx
call fcn.0040e6c0
mov esi, eax
call fcn.0040e730
mov esi, eax
call fcn.0040dca0
push esi
mov ecx, ebx
call fcn.0040ed30
mov byte [esp + 0xec], 5
mov esi, ebx
mov dword [esp + 0xb8], edi
call fcn.0040dca0
mov eax, dword [esp + 0x20]
add eax, 1
cmp eax, dword [esp + 0x78]
mov dword [esp + 0x20], eax
jb 0x41490d
mov edi, dword [esp + 0x74]
lea esi, [ebp + 0x14]
call fcn.00415490
mov esi, eax
call fcn.0040dca0
push esi
lea ecx, [esp + 0x60]
call fcn.0040ed30
mov byte [esp + 0xec], 3
lea esi, [esp + 0x3c]
mov dword [esp + 0x3c], 0x483374
call fcn.0040dca0
push 0x4834f4
lea edx, [esp + 0x60]
push edx
call fcn.0040e6c0
call fcn.0040e820
test al, al
je 0x414a70
sub esp, 0x1c
mov esi, esp
mov dword [esp + 0x90], esp
push 0x4834f4
lea eax, [esp + 0x7c]
push eax
call fcn.0040e6c0
push eax
mov ecx, esi
call fcn.0040e300
mov edi, dword [esp + 0x34]
mov esi, edi
call fcn.0040e880
jmp 0x414a74
mov byte [esp + 0xec], 5
lea esi, [esp + 0xb8]
mov dword [esp + 0xb8], edi
call fcn.0040dca0
mov byte [esp + 0xec], 3
lea esi, [esp + 0x3c]
mov dword [esp + 0x3c], edi
call fcn.0040dca0
mov byte [esp + 0xec], 2
lea esi, [esp + 0x5c]
mov dword [esp + 0x5c], edi
call fcn.0040dca0
jmp 0x414789
mov edi, dword [esp + 0x18]
xor ebx, ebx
push 0x483508
lea ecx, [esp + 0x60]
push ecx
call fcn.0040e6c0
mov ecx, dword [eax + 8]
cmp ecx, 1
je 0x414b87
cmp ecx, 2
je 0x414b87
cmp ecx, 0x12
je 0x414aa8
cmp ecx, 0x13
jne 0x414b87
mov edx, dword [eax + 0x10]
cmp ebx, dword [edx + 0x24]
jae 0x414b87
push 0x483508
lea eax, [esp + 0x60]
push eax
call fcn.0040e6c0
push ebx
push 0x483330
lea edx, [esp + 0xdc]
mov esi, eax
call fcn.00410290
add esp, 8
lea ecx, [esp + 0xd4]
push ecx
push esi
call fcn.0040e6c0
push eax
lea ecx, [esp + 0x40]
call fcn.0040e300
lea edx, [esp + 0x3c]
push edx
lea ecx, [esp + 0xbc]
mov byte [esp + 0xf0], 7
call fcn.00403ed0
lea ecx, [esp + 0x3c]
mov byte [esp + 0xec], 9
call fcn.00403f20
lea eax, [esp + 0xb8]
push eax
push 0x483508
push edi
call fcn.0040e6c0
mov ecx, eax
call fcn.0040e560
mov ecx, dword [esp + 0x1c]
push eax
push ecx
mov ecx, ebp
call fcn.00413450
test al, al
lea ecx, [esp + 0xb8]
je 0x414b63
mov byte [esp + 0xec], 3
call fcn.00403f20
add ebx, 1
jmp 0x414a76
call fcn.00403f20
mov byte [esp + 0xec], 2
mov edi, 0x483374
lea esi, [esp + 0x5c]
mov dword [esp + 0x5c], edi
call fcn.0040dca0
jmp 0x414789
cmp byte [esp + 0x16], 0
je 0x414ba4
push 0x4834e0
lea edx, [esp + 0x60]
push edx
call fcn.0040e6c0
call fcn.0040df40
jmp 0x414ba8
mov al, byte [esp + 0x15]
test al, al
je 0x414d2e
xor eax, eax
mov dword [esp + 0x3c], 0x483374
mov dword [esp + 0x44], 1
mov dword [esp + 0x4c], eax
mov dword [esp + 0x50], eax
mov edi, dword [esp + 0x1c]
push eax
push edi
lea ebx, [esp + 0x44]
mov ecx, ebp
mov byte [esp + 0xf4], 0xa
call fcn.00413b30
test al, al
je 0x414d07
jmp 0x414bf0
cmp dword [esp + 0x44], 0x11
jne 0x414c4f
push 0x483091
call fcn.00403c50
mov ecx, dword [esp + 0x50]
mov esi, dword [ecx + 0x14]
mov ebx, eax
add esp, 4
cmp esi, ebx
mov eax, esi
mov edi, esi
jb 0x414c17
mov edi, ebx
call fcn.00404310
mov edx, eax
mov eax, edi
mov ecx, 0x483091
call fcn.00408af0
test eax, eax
jne 0x414c40
cmp esi, ebx
jae 0x414c37
or eax, 0xffffffff
jmp 0x414c3e
xor eax, eax
cmp esi, ebx
setne al
test eax, eax
sete al
test al, al
jne 0x414d11
mov edi, dword [esp + 0x1c]
lea eax, [esp + 0x3c]
push eax
lea ecx, [esp + 0x84]
call fcn.0040e300
lea ecx, [esp + 0x80]
push ecx
lea ecx, [esp + 0xa0]
mov byte [esp + 0xf0], 0xb
call fcn.00403ed0
mov ecx, dword [esp + 0x18]
push eax
mov byte [esp + 0xf0], 0xc
call fcn.0040e560
push eax
push edi
mov ecx, ebp
call fcn.00413450
test al, al
lea ecx, [esp + 0x9c]
sete bl
call fcn.00403f20
lea ecx, [esp + 0x80]
call fcn.00403f20
test bl, bl
mov byte [esp + 0xec], 3
lea esi, [esp + 0x3c]
jne 0x414dd0
mov ebx, 0x483374
mov dword [esp + 0x3c], ebx
call fcn.0040dca0
xor eax, eax
mov dword [esp + 0x3c], ebx
mov dword [esp + 0x44], 1
mov dword [esp + 0x4c], eax
mov dword [esp + 0x50], eax
push eax
push edi
mov ebx, esi
mov ecx, ebp
mov byte [esp + 0xf4], 0xa
call fcn.00413b30
test al, al
jne 0x414bf0
mov edi, 0x483374
jmp 0x414a41
mov byte [esp + 0xec], 3
lea esi, [esp + 0x3c]
mov dword [esp + 0x3c], 0x483374
call fcn.0040dca0
mov edi, dword [esp + 0x18]
mov ebx, dword [esp + 0x7c]
mov eax, dword [ebx + 4]
test eax, eax
mov esi, dword [esp + 0x58]
je 0x414d57
mov ecx, dword [ebx + 8]
sub ecx, eax
mov eax, 0x2aaaaaab
imul ecx
sar edx, 2
mov eax, edx
shr eax, 0x1f
add eax, edx
cmp esi, eax
jb 0x414d5c
call fcn.0043b4b1
mov eax, dword [ebx + 4]
lea edx, [esi + esi*2]
lea esi, [eax + edx*8]
call fcn.0040dca0
push esi
mov ecx, edi
call fcn.0040ed30
mov byte [esp + 0xec], 2
mov edi, 0x483374
lea esi, [esp + 0x5c]
mov dword [esp + 0x5c], edi
call fcn.0040dca0
mov dword [esp + 0xec], 0xffffffff
mov dword [esp + 0x24], edi
lea esi, [esp + 0x24]
call fcn.0040dca0
mov al, 1
mov ecx, dword [esp + 0xe4]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebp
pop ebx
mov ecx, dword [esp + 0xcc]
xor ecx, esp
call fcn.0043aca7
add esp, 0xdc
ret 0xc
mov edi, 0x483374
jmp 0x414a4d