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

Disassembly:
push 0x144
mov eax, 0x443f30
call fcn.00435558
mov eax, dword [ebp + 0xc]
mov edi, dword [ebp + 0x14]
xor ebx, ebx
mov dword [ebp - 0x100], eax
mov eax, dword [ebp + 0x10]
mov esi, edx
mov dword [ebp - 0xdc], esi
mov dword [ebp - 0x10c], ecx
mov dword [ebp - 0xe4], eax
mov dword [ebp - 0xe0], edi
mov dword [ebp - 0xf0], ebx
mov dword [ebp - 0xec], ebx
mov dword [ebp - 0xe8], ebx
lea eax, [ebp - 0xf4]
push eax
mov dword [ebp - 4], ebx
call fcn.004177b9
pop ecx
lea eax, [ebp - 0xf4]
call fcn.00401cbf
cmp eax, ebx
jne 0x412c75
mov dword [edi], 0x80004005
lea esi, [ebp - 0xf4]
call fcn.00405733
xor al, al
call fcn.004355db
ret 0x10
mov ecx, dword [esi + 0x30]
dec ecx
mov dword [ebp - 0xf8], ebx
je 0x412d3f
dec ecx
dec ecx
jne 0x412d46
lea edi, [esi + 0x6c]
mov eax, edi
call fcn.00401cbf
test eax, eax
je 0x412d18
mov eax, edi
call fcn.00401cbf
dec eax
mov dword [ebp - 0x108], eax
js 0x412d46
mov esi, dword [ebp - 0xdc]
push dword [ebp - 0x108]
add esi, 0x6c
call fcn.00401cd5
mov dword [ebp - 0x20], ebx
mov dword [ebp - 0x1c], ebx
mov dword [ebp - 0x18], ebx
lea ecx, [ebp - 0x24]
push ecx
mov ecx, eax
mov byte [ebp - 4], 1
call fcn.004177b9
pop ecx
lea eax, [ebp - 0xf4]
push eax
lea eax, [ebp - 0x24]
push eax
lea edi, [ebp - 0xf8]
call fcn.004144d5
cmp eax, ebx
mov byte [ebp - 4], bl
lea esi, [ebp - 0x24]
je 0x412d0b
call fcn.00405733
dec dword [ebp - 0x108]
jns 0x412caf
jmp 0x412d10
call fcn.00405733
mov esi, dword [ebp - 0xdc]
jmp 0x412d46
lea eax, [ebp - 0xf4]
push eax
lea eax, [esi + 0x5c]
push eax
lea edi, [ebp - 0xf8]
call fcn.004144d5
cmp eax, ebx
je 0x412d46
mov ecx, dword [ebp - 0xe0]
mov dword [ecx], eax
jmp 0x412c60
dec eax
mov dword [ebp - 0xf8], eax
push dword [ebp - 0xf8]
lea eax, [ebp - 0xf4]
push ebx
call fcn.004156ec
lea eax, [ebp - 0xf4]
push eax
call fcn.004173b1
lea eax, [ebp - 0xf4]
add esp, 0xc
push eax
lea edi, [ebp - 0x4c]
call fcn.00417725
pop ecx
mov byte [ebp - 4], 2
cmp dword [esi + 0x30], 2
mov byte [ebp - 0xd6], bl
jne 0x412e35
cmp dword [ebp - 0x38], 1
jbe 0x412e35
xor edi, edi
inc edi
lea eax, [ebp - 0x4c]
call fcn.004099c5
cmp word [eax], 0x5f
jne 0x412e35
push 2
pop edi
cmp dword [ebp - 0x38], edi
jne 0x412dc0
mov eax, dword [ebp - 0x100]
cmp byte [eax + 0x9c], bl
jne 0x412ddc
lea eax, [ebp - 0x4c]
call fcn.004099c5
cmp word [eax], 0x5c
je 0x412ddc
lea eax, [ebp - 0x4c]
call fcn.004099c5
cmp word [eax], 0x2f
jne 0x412e35
push 1
lea eax, [ebp - 0x4c]
push eax
xor ebx, ebx
lea esi, [ebp - 0x30]
call fcn.00402e3b
push 0x3a
mov byte [ebp - 4], 3
call fcn.00402df0
mov eax, esi
push eax
call fcn.0040da22
test al, al
pop ecx
je 0x412e1b
xor edi, edi
inc edi
lea eax, [ebp - 0x4c]
call fcn.004099c5
mov word [eax], 0x3a
mov byte [ebp - 0xd6], 1
push 0
push 1
lea esi, [ebp - 0x30]
mov byte [ebp - 4], 2
call fcn.00401d7c
xor ebx, ebx
cmp byte [ebp - 0xd6], bl
jne 0x412eb0
mov eax, dword [ebp - 0xdc]
cmp byte [eax + 0x39], bl
je 0x412eb0
mov esi, dword [ebp - 0xf0]
cmp esi, dword [ebp - 0xec]
jbe 0x412e53
call fcn.0043358c
push esi
lea eax, [ebp - 0xf4]
push eax
mov eax, dword [ebp - 0xdc]
add eax, 0x7c
push eax
lea eax, [ebp - 0x1c]
push eax
lea eax, [ebp - 0xf4]
call fcn.0040582a
lea eax, [ebp - 0xf4]
push eax
call fcn.004173b1
pop ecx
lea eax, [ebp - 0xf4]
push eax
lea edi, [ebp - 0x68]
call fcn.00417725
pop ecx
push 0xffffffffffffffff
lea ecx, [ebp - 0x4c]
push ecx
xor ebx, ebx
mov byte [ebp - 4], 4
call fcn.00401cf4
push ebx
push 1
mov esi, edi
mov byte [ebp - 4], 2
call fcn.00401d7c
mov esi, dword [ebp - 0x100]
cmp byte [esi + 0x9c], bl
jne 0x412ee3
lea eax, [ebp - 0xf4]
call fcn.00401cbf
test eax, eax
je 0x412ee3
mov eax, dword [ebp - 0xec]
push eax
add eax, 0xffffffe4
call fcn.004059b3
sub dword [ebp - 0xec], 0x1c
mov cl, byte [esi + 0x9c]
cmp cl, bl
mov edx, dword [ebp - 0xdc]
mov al, 1
je 0x412efd
cmp dword [edx + 0x30], 1
jne 0x412efd
xor al, al
cmp dword [edx + 0x2c], 2
jne 0x412f05
xor al, al
cmp al, bl
je 0x413121
mov dword [ebp - 0x18], 7
mov dword [ebp - 0x1c], ebx
mov word [ebp - 0x2c], bx
cmp byte [ebp - 0xd6], bl
mov byte [ebp - 4], 5
mov byte [ebp - 0xd5], bl
lea eax, [ebp - 0x30]
je 0x412f69
cmp cl, bl
je 0x412f43
push 0xffffffffffffffff
push eax
xor ebx, ebx
lea eax, [ebp - 0x4c]
call fcn.00401cf4
jmp 0x412f4d
push eax
lea edi, [ebp - 0x4c]
call fcn.0040d79e
pop ecx
lea eax, [ebp - 0x30]
push eax
call fcn.0040dad8
test al, al
pop ecx
jne 0x412f65
lea ecx, [ebp - 0x30]
call fcn.0040d6c1
jmp 0x412f77
mov al, 1
jmp 0x412f7e
push eax
lea eax, [ebp - 0xf4]
push eax
push edx
call fcn.00411f08
mov byte [ebp - 0xd5], 1
cmp al, bl
jne 0x412fec
lea esi, [ebp - 0x150]
call fcn.0040ef4c
mov byte [ebp - 4], 6
cmp dword [eax + 0x18], 8
jb 0x412f9c
mov eax, dword [eax + 4]
jmp 0x412f9f
add eax, 4
cmp dword [ebp - 0x18], 8
mov ecx, dword [ebp - 0x2c]
jae 0x412fab
lea ecx, [ebp - 0x2c]
push eax
push ecx
push 0x271a
lea ecx, [ebp - 0x68]
call fcn.004046e0
add esp, 0xc
push ebx
push 1
lea esi, [ebp - 0x150]
mov byte [ebp - 4], 8
call fcn.00401d7c
mov esi, dword [ebp - 0xdc]
lea eax, [ebp - 0x68]
push eax
push dword [ebp + 8]
call fcn.00414379
push ebx
push 1
lea esi, [ebp - 0x68]
call fcn.00401d7c
cmp byte [ebp - 0xd6], bl
jne 0x4130cd
mov eax, dword [ebp - 0x100]
cmp byte [eax + 0x9c], bl
je 0x413112
mov eax, dword [ebp - 0xdc]
cmp byte [eax + 0x58], bl
jne 0x413023
cmp byte [eax + 0x59], bl
jne 0x413023
cmp byte [eax + 0x5a], bl
je 0x413112
mov dword [ebp - 0x74], 7
mov dword [ebp - 0x78], ebx
mov word [ebp - 0x88], bx
mov dword [ebp - 0x70], ebx
mov dword [ebp - 0x6c], ebx
mov byte [ebp - 0x68], bl
mov dword [ebp - 0x64], ebx
mov dword [ebp - 0x60], ebx
mov byte [ebp - 0x5c], bl
mov dword [ebp - 0x58], ebx
mov dword [ebp - 0x54], ebx
mov byte [ebp - 0x50], bl
push 0xffffffffffffffff
lea eax, [ebp - 0x8c]
push eax
xor ebx, ebx
lea eax, [ebp - 0x30]
mov byte [ebp - 4], 9
call fcn.00401cf4
mov eax, dword [ebp - 0xdc]
cmp byte [eax + 0x58], bl
mov ecx, dword [ebp - 0x100]
je 0x41308f
cmp byte [ecx + 0x98], bl
je 0x41308f
mov edx, dword [ecx + 0x74]
mov dword [ebp - 0x70], edx
mov edx, dword [ecx + 0x78]
mov dword [ebp - 0x6c], edx
mov byte [ebp - 0x68], 1
cmp byte [eax + 0x59], bl
je 0x4130af
cmp byte [ecx + 0x99], bl
je 0x4130af
mov edx, dword [ecx + 0x7c]
mov dword [ebp - 0x64], edx
mov edx, dword [ecx + 0x80]
mov dword [ebp - 0x60], edx
mov byte [ebp - 0x5c], 1
cmp byte [eax + 0x5a], bl
je 0x4130da
cmp byte [ecx + 0x9a], bl
je 0x4130da
mov edx, dword [ecx + 0x84]
mov ecx, dword [ecx + 0x88]
mov dword [ebp - 0x58], edx
jmp 0x4130e9
cmp byte [ebp - 0xd5], bl
je 0x413112
jmp 0x412ff8
mov ecx, dword [eax + 0x98]
mov dword [ebp - 0x58], ecx
mov ecx, dword [eax + 0x9c]
mov dword [ebp - 0x54], ecx
lea ecx, [ebp - 0x8c]
push ecx
lea esi, [eax + 0x12c]
mov byte [ebp - 0x50], 1
call fcn.0041498b
push ebx
push 1
lea esi, [ebp - 0x8c]
call fcn.00401d7c
xor ebx, ebx
push ebx
push 1
lea esi, [ebp - 0x30]
mov byte [ebp - 4], 2
call fcn.00401d7c
mov eax, dword [ebp - 0xe4]
call fcn.00409937
cmp byte [ebp - 0xd6], bl
lea eax, [ebp - 0x4c]
je 0x413148
push 0xffffffffffffffff
push dword [ebp - 0xe4]
xor ebx, ebx
call fcn.00401cf4
jmp 0x413187
push eax
mov eax, dword [ebp - 0xdc]
add eax, 0x3c
push eax
lea eax, [ebp - 0x150]
push eax
call fcn.00409f20
add esp, 0xc
push 0xffffffffffffffff
push dword [ebp - 0xe4]
xor ebx, ebx
mov byte [ebp - 4], 0xa
call fcn.00401cf4
push ebx
push 1
lea esi, [ebp - 0x150]
mov byte [ebp - 4], 2
call fcn.00401d7c
mov esi, dword [ebp - 0x100]
cmp byte [esi + 0x9c], bl
je 0x4131ad
mov eax, dword [ebp - 0xe0]
mov dword [eax], ebx
push ebx
push 1
lea esi, [ebp - 0x4c]
call fcn.00401d7c
jmp 0x412c60
cmp byte [esi + 0x28], bl
jne 0x41371c
lea eax, [ebp - 0xd4]
call fcn.0040f25f
push dword [ebp - 0xe4]
mov byte [ebp - 4], 0xb
mov byte [ebp - 0xd6], bl
call fcn.0040da22
test al, al
pop ecx
je 0x4138bd
lea eax, [ebp - 0xd4]
push eax
push dword [ebp - 0xe4]
call fcn.0040f228
test al, al
pop ecx
pop ecx
je 0x4138bd
mov edi, dword [ebp - 0xdc]
mov eax, dword [edi + 0x2c]
cmp eax, 1
je 0x41320e
cmp eax, 2
jne 0x413252
cmp dword [edi + 0x34], 1
ja 0x413252
lea eax, [ebp - 0xd4]
call fcn.0041702a
mov cl, byte [esi + 0x9a]
neg cl
lea edx, [esi + 0x84]
sbb ecx, ecx
and ecx, edx
call fcn.0042c2eb
test eax, eax
jg 0x413252
mov eax, dword [ebp - 0xe0]
mov dword [eax], ebx
lea eax, [ebp - 0xd4]
call fcn.0040f28d
jmp 0x41319d
mov eax, dword [edi + 0x34]
sub eax, ebx
je 0x413263
dec eax
dec eax
jne 0x41340e
jmp 0x41323a
lea ecx, [ebp - 0xd4]
call fcn.0040f338
mov dword [ebp - 0x134], eax
mov eax, ecx
mov dword [ebp - 0x130], edx
call fcn.0041702a
mov ecx, dword [eax]
mov dword [ebp - 0x1c], ecx
mov eax, dword [eax + 4]
mov dword [ebp - 0x18], eax
lea eax, [edi + 0x1c]
mov byte [ebp - 0xd5], bl
mov dword [ebp - 0x104], ebx
mov dword [ebp - 0x100], ebx
call fcn.00429f18
test al, al
je 0x413307
lea eax, [ebp - 0x74]
call fcn.0040efd5
lea eax, [edi + 0x1c]
mov byte [ebp - 4], 0xc
call fcn.00415766
mov edx, dword [eax]
lea ecx, [ebp - 0x74]
push ecx
push 7
push dword [ebp + 8]
mov ecx, eax
call dword [edx + 0x1c]
cmp eax, ebx
jne 0x4132ff
lea eax, [ebp - 0x74]
call fcn.00415766
test eax, eax
setne byte [ebp - 0xd5]
cmp byte [ebp - 0xd5], bl
je 0x4132ff
lea ecx, [ebp - 0x74]
call fcn.0040f011
mov dword [ebp - 0x104], eax
mov dword [ebp - 0x100], edx
lea eax, [ebp - 0x74]
call fcn.0040efee
lea eax, [edi + 0x118]
cmp eax, ebx
mov dword [ebp - 0xdc], eax
je 0x41331c
call fcn.004105f5
lea eax, [edi + 0x20]
mov byte [ebp - 4], 0xd
call fcn.00415766
push dword [ebp - 0xe4]
mov dl, byte [ebp - 0xd5]
neg dl
lea ecx, [ebp - 0xf8]
push ecx
lea ecx, [ebp - 0x104]
push 1
mov dword [ebp - 0x108], eax
mov eax, dword [eax]
sbb edx, edx
and edx, ecx
mov cl, byte [esi + 0x9a]
neg cl
push edx
lea edx, [esi + 0x84]
sbb ecx, ecx
and ecx, edx
push ecx
push dword [ebp - 0x10c]
lea ecx, [ebp - 0x134]
push ecx
lea ecx, [ebp - 0x1c]
push ecx
push dword [ebp - 0xe4]
mov ecx, dword [ebp - 0x108]
call dword [eax + 0x18]
cmp eax, ebx
je 0x4133a9
mov ecx, dword [ebp - 0xe0]
mov dword [ecx], eax
mov eax, dword [ebp - 0xdc]
cmp eax, ebx
je 0x413242
call fcn.00410603
jmp 0x413242
mov eax, dword [ebp - 0xf8]
cmp eax, 7
ja 0x413603
jmp dword [eax*4 + 0x412d07]
cmp dword [ebp - 0xdc], ebx
je 0x413242
mov eax, dword [ebp - 0xdc]
jmp 0x41339f
mov eax, dword [edi + 0x34]
cmp eax, 3
jne 0x413625
mov ecx, dword [ebp - 0xe4]
call fcn.00411687
test al, al
jne 0x413711
lea eax, [ebp - 0x128]
push 0x271b
push eax
call fcn.004046c3
push dword [ebp - 0xe4]
mov byte [ebp - 4], 0x14
push eax
lea eax, [ebp - 0x68]
push eax
call fcn.00409f20
add esp, 0x14
push ebx
push 1
lea esi, [ebp - 0x128]
mov byte [ebp - 4], 0x16
call fcn.00401d7c
lea eax, [ebp - 0x68]
push eax
push dword [ebp + 8]
mov esi, edi
call fcn.00414379
cmp eax, ebx
push ebx
lea esi, [ebp - 0x68]
push 1
je 0x413614
mov ecx, dword [ebp - 0xe0]
mov dword [ecx], eax
call fcn.00401d7c
jmp 0x413242
lea eax, [ebp - 0xd4]
call fcn.0040f28d
push edi
push ebx
jmp 0x4131a0
mov eax, dword [ebp - 0xe0]
mov dword [eax], 0x80004005
jmp 0x4133cb
mov eax, dword [ebp - 0xe0]
mov dword [eax], 0x80004005
jmp 0x41348b
cmp eax, 4
jne 0x413728
mov eax, dword [ebp - 0xe4]
lea esi, [ebp - 0x30]
call fcn.00401ca0
mov ecx, esi
mov byte [ebp - 4], 0x17
call fcn.00411687
test al, al
jne 0x4136c3
lea eax, [ebp - 0x128]
push 0x271b
push eax
call fcn.004046c3
push dword [ebp - 0xe4]
mov byte [ebp - 4], 0x18
push eax
lea eax, [ebp - 0x68]
push eax
call fcn.00409f20
add esp, 0x14
mov byte [ebp - 4], 0x1a
push ebx
push 1
lea esi, [ebp - 0x128]
call fcn.00401d7c
lea eax, [ebp - 0x68]
push eax
push dword [ebp + 8]
mov esi, edi
call fcn.00414379
cmp eax, ebx
push ebx
push 1
lea esi, [ebp - 0x68]
je 0x4136b5
mov ecx, dword [ebp - 0xe0]
mov dword [ecx], eax
call fcn.00401d7c
push ebx
push 1
lea esi, [ebp - 0x30]
jmp 0x41348b
mov eax, dword [ebp - 0xe0]
mov dword [eax], 0x80004005
jmp 0x4136a5
mov ecx, dword [ebp - 0xe4]
lea eax, [ebp - 0x30]
call fcn.0040d6b7
test al, al
jne 0x413706
lea eax, [ebp - 0x128]
push 0x271d
push eax
call fcn.004046c3
push dword [ebp - 0xe4]
mov byte [ebp - 4], 0x1b
push eax
lea eax, [ebp - 0x68]
push eax
call fcn.00409f20
add esp, 0x14
mov byte [ebp - 4], 0x1d
jmp 0x413677
push ebx
push 1
lea esi, [ebp - 0x30]
call fcn.00401d7c
lea eax, [ebp - 0xd4]
call fcn.0040f28d
mov byte [ebp - 0xd5], 1
jmp 0x4138e6
cmp eax, 1
jne 0x4137d1
push 0xffffffffffffffff
lea eax, [esi + 0x48]
push eax
mov eax, dword [ebp - 0xe4]
xor ebx, ebx
call fcn.00401cf4
mov ecx, dword [ebp - 0xe4]
call fcn.00411687
test al, al
jne 0x4137c6
lea eax, [ebp - 0x128]
push 0x271b
push eax
call fcn.004046c3
push dword [ebp - 0xe4]
mov byte [ebp - 4], 0x1e
push eax
lea eax, [ebp - 0x68]
push eax
call fcn.00409f20
add esp, 0x14
push ebx
inc ebx
push ebx
lea esi, [ebp - 0x128]
mov byte [ebp - 4], 0x20
call fcn.00401d7c
lea eax, [ebp - 0x68]
push eax
push dword [ebp + 8]
mov esi, edi
call fcn.00414379
xor edi, edi
cmp eax, edi
push edi
lea esi, [ebp - 0x68]
push ebx
je 0x4137b8
mov ecx, dword [ebp - 0xe0]
mov dword [ecx], eax
call fcn.00401d7c
jmp 0x41352a
mov eax, dword [ebp - 0xe0]
mov dword [eax], 0x80004005
jmp 0x4137ae
mov byte [esi + 0x64], 1
xor ebx, ebx
jmp 0x413711
cmp byte [ebp - 0xd6], bl
jne 0x413711
cmp byte [esi + 0x64], bl
jne 0x413711
push dword [ebp - 0xe4]
call fcn.0040d6c6
test al, al
pop ecx
jne 0x413711
lea eax, [ebp - 0x128]
push 0x271c
push eax
call fcn.004046c3
push dword [ebp - 0xe4]
mov byte [ebp - 4], 0x21
push eax
lea eax, [ebp - 0x30]
push eax
call fcn.00409f20
add esp, 0x14
push ebx
push 1
lea esi, [ebp - 0x128]
mov byte [ebp - 4], 0x23
call fcn.00401d7c
lea eax, [ebp - 0x150]
push 0x2790
push eax
call fcn.004046c3
pop ecx
pop ecx
push 0xffffffffffffffff
push ebx
lea esi, [ebp - 0x30]
mov byte [ebp - 4], 0x24
call fcn.00402edd
push ebx
push 1
lea esi, [ebp - 0x150]
mov byte [ebp - 4], 0x23
call fcn.00401d7c
lea esi, [ebp - 0x150]
call fcn.0040ef4c
push 0xffffffffffffffff
push ebx
lea esi, [ebp - 0x30]
mov byte [ebp - 4], 0x25
call fcn.00402edd
push ebx
push 1
lea esi, [ebp - 0x150]
mov byte [ebp - 4], 0x23
call fcn.00401d7c
lea eax, [ebp - 0x30]
push eax
push dword [ebp + 8]
mov esi, edi
call fcn.00414379
cmp eax, ebx
push ebx
lea esi, [ebp - 0x30]
push 1
jne 0x413483
mov eax, dword [ebp - 0xe0]
mov dword [eax], ebx
jmp 0x41348b
mov eax, dword [ebp - 0xdc]
cmp dword [eax + 0x2c], 2
jne 0x413711
mov eax, dword [ebp - 0xe0]
mov dword [eax], ebx
lea eax, [ebp - 0xd4]
call fcn.0040f28d
mov byte [ebp - 0xd5], bl
push ebx
push 1
lea esi, [ebp - 0x4c]
call fcn.00401d7c
lea esi, [ebp - 0xf4]
call fcn.00405733
mov al, byte [ebp - 0xd5]
jmp 0x412c6d