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

Disassembly:
mov ecx, dword fs:[0x14]
mov ecx, dword [ecx]
cmp esp, dword [ecx + 8]
jbe 0x414cfc
sub esp, 0x60
mov eax, dword fs:[0x14]
mov eax, dword [eax]
mov ecx, dword [eax + 0x18]
nop
inc dword [ecx + 0x7c]
mov ecx, dword [eax + 0x18]
test byte [eax], al
mov eax, dword fs:[0x14]
mov eax, dword [eax]
cmp dword [ecx], eax
je 0x4146ff
mov edx, dword [ecx + 0x7c]
cmp edx, 1
jg 0x4146ff
mov ebx, dword [ecx + 0x78]
test ebx, ebx
jne 0x4146ff
nop
lea ebx, [edx - 1]
mov dword [ecx + 0x7c], ebx
cmp edx, 1
jne 0x414727
movzx ecx, byte [eax + 0x65]
test cl, cl
je 0x414727
mov dword [eax + 8], 0xfffffade
jmp 0x414727
nop
mov edx, dword [ecx + 0x7c]
lea ebx, [edx - 1]
mov dword [ecx + 0x7c], ebx
cmp edx, 1
jne 0x41471d
movzx ecx, byte [eax + 0x65]
test cl, cl
je 0x41471d
mov dword [eax + 8], 0xfffffade
add esp, 0x60
ret
inc dword [0x1f7328c]
mov eax, dword [esp + 0x64]
mov dword [esp], eax
mov ecx, dword [esp + 0x6c]
mov dword [esp + 8], ecx
mov edx, dword [esp + 0x68]
mov dword [esp + 4], edx
mov ebx, dword [esp + 0x70]
mov dword [esp + 0xc], ebx
call fcn.00414520
movzx eax, byte [esp + 0x10]
test al, al
jne 0x414758
xor eax, eax
jmp 0x414764
call fcn.00422070
cmp dword [esp], 0xffffffff
setne al
test al, al
jne 0x414721
lea eax, [0x1f735f8]
mov dword [esp], eax
mov byte [esp + 4], 0
mov dword [esp + 8], 0
mov dword [esp + 0xc], 0
mov byte [esp + 0x10], 0x12
call fcn.004469d0
mov eax, dword [esp + 0x64]
mov dword [esp], eax
mov ecx, dword [esp + 0x6c]
mov dword [esp + 8], ecx
mov edx, dword [esp + 0x68]
mov dword [esp + 4], edx
mov ebx, dword [esp + 0x70]
mov dword [esp + 0xc], ebx
call fcn.00414520
movzx eax, byte [esp + 0x10]
test al, al
je 0x4148dd
mov eax, dword [0x1f98118]
cmp eax, 1
jne 0x4147d3
mov eax, 1
jmp 0x4147e1
cmp eax, 2
jne 0x4147df
mov eax, 2
jmp 0x4147e1
xor eax, eax
mov dword [esp + 0x28], eax
mov ecx, dword [esp + 0x64]
cmp ecx, 2
sete dl
mov byte [esp + 0x23], dl
lea ebx, [0x1f57274]
mov dword [esp], ebx
mov byte [esp + 4], 0
mov dword [esp + 8], 0
mov dword [esp + 0xc], 0
mov byte [esp + 0x10], 0x12
call fcn.004469d0
lea eax, [0x1f57294]
mov dword [esp], eax
mov byte [esp + 4], 0
mov dword [esp + 8], 0
mov dword [esp + 0xc], 0
mov byte [esp + 0x10], 0x12
call fcn.004469d0
movzx eax, byte [esp + 0x23]
mov byte [0x1f7360c], al
movzx eax, byte [0x1f7c428]
test al, al
je 0x4148c5
nop
mov dword [esp + 0x44], 0
mov dword [esp + 0x48], 0
mov eax, dword [0x1f7c458]
mov ecx, dword [0x1f7c45c]
mov dword [esp + 0x44], eax
mov dword [esp + 0x48], ecx
mov byte [esp], 7
mov dword [esp + 4], 3
lea eax, [esp + 0x44]
mov dword [esp + 8], eax
mov dword [esp + 0xc], 1
mov dword [esp + 0x10], 1
call fcn.004520b0
mov eax, dword [0x1f7c458]
mov ecx, dword [0x1f7c45c]
add eax, 1
adc ecx, 0
mov dword [0x1f7c458], eax
mov dword [0x1f7c45c], ecx
mov eax, dword [0x1f73178]
mov dword [esp + 0x54], eax
mov ecx, dword [0x1f7317c]
mov dword [esp + 0x38], ecx
xor edx, edx
jmp 0x41490c
nop
lea eax, [0x1f735f8]
mov dword [esp], eax
mov byte [esp + 4], 0
mov dword [esp + 8], 0
call fcn.00446cf0
add esp, 0x60
ret
mov ebx, dword [esp + 0x34]
lea edx, [ebx + 1]
mov eax, dword [esp + 0x54]
mov ecx, dword [esp + 0x38]
cmp edx, ecx
jge 0x414941
mov dword [esp + 0x34], edx
mov ecx, dword [eax + edx*4]
mov dword [esp + 0x4c], ecx
mov ebx, dword [ecx + 0x30]
test byte [ebx], al
add ebx, 0x24c
mov dword [esp], ebx
call fcn.00401fc0
mov eax, dword [0x1f77e78]
mov ecx, dword [esp + 4]
cmp ecx, eax
je 0x4148fd
jmp 0x414c45
call fcn.004166c0
lea eax, [0x1ed5efc]
mov dword [esp], eax
call fcn.0045dbe0
mov eax, dword [0x1f97e10]
mov dword [0x1f73630], eax
mov dword [0x1f73634], eax
mov ecx, dword [0x1f97e2c]
cmp ecx, eax
jge 0x414976
mov dword [0x1f73630], ecx
lea eax, [0x1f98710]
mov dword [esp], eax
call fcn.00402220
mov eax, dword [esp + 8]
mov ecx, dword [esp + 4]
mov dword [0x1f7366c], eax
mov dword [0x1f73668], ecx
mov dword [0x1f73658], 0
mov dword [0x1f7365c], 0
mov eax, dword [esp + 0x28]
mov dword [0x1f73608], eax
call fcn.0045ff60
mov eax, dword [esp + 4]
mov ecx, dword [esp]
mov dword [esp + 0x40], eax
mov dword [esp + 0x3c], ecx
mov dword [0x1f7363c], eax
mov dword [0x1f73638], ecx
mov dword [0x1f73664], eax
mov dword [0x1f73660], ecx
movzx eax, byte [0x1f7c428]
test al, al
je 0x414a37
nop
mov dword [esp + 0x44], 0
mov dword [esp + 0x48], 0
mov dword [esp + 0x44], 1
mov dword [esp + 0x48], 0
mov byte [esp], 9
mov dword [esp + 4], 0xffffffff
lea eax, [esp + 0x44]
mov dword [esp + 8], eax
mov dword [esp + 0xc], 1
mov dword [esp + 0x10], 1
call fcn.004520b0
lea eax, [0x1ed5fc4]
mov dword [esp], eax
call fcn.0045dbe0
lea eax, [0x1ed5f00]
mov dword [esp], eax
call fcn.0045dbe0
call fcn.004176a0
nop
lea eax, [0x1f7362c]
mov dword [esp], eax
mov dword [esp + 4], 1
call fcn.00402130
mov eax, dword [esp + 0x3c]
mov ecx, dword [esp + 0x40]
mov edx, dword [0x1f97e10]
lea ebx, [0x1f986c0]
mov dword [esp], ebx
mov dword [esp + 8], ecx
mov dword [esp + 4], eax
mov dword [esp + 0xc], edx
mov eax, dword [esp + 0x64]
mov dword [esp + 0x10], eax
mov eax, dword [esp + 0x6c]
mov dword [esp + 0x18], eax
mov eax, dword [esp + 0x68]
mov dword [esp + 0x14], eax
mov eax, dword [esp + 0x70]
mov dword [esp + 0x1c], eax
call fcn.0041c860
mov eax, dword [esp + 0x3c]
mov ecx, dword [esp + 0x40]
lea edx, [0x1f98160]
mov dword [esp], edx
mov byte [esp + 4], 1
mov dword [esp + 0xc], ecx
mov dword [esp + 8], eax
call fcn.00417c90
mov eax, dword [esp + 0x28]
test eax, eax
je 0x414aeb
mov byte [esp], 0
call fcn.00442ab0
lea eax, [0x1f97e0c]
mov dword [esp], eax
mov dword [esp + 4], 1
call fcn.00402200
mov eax, dword [0x1f97e0c]
cmp eax, 1
jne 0x414b13
mov eax, 1
jmp 0x414b19
cmp eax, 2
sete al
mov byte [0x1f97fa4], al
test al, al
je 0x414b2a
mov eax, 1
jmp 0x414b31
movzx eax, byte [0x1f97fa5]
mov byte [0x1f97fa0], al
nop
mov dword [0x1f735b8], 0xffffffff
mov dword [0x1f735c4], 0xffffffff
call fcn.00418a10
call fcn.0041c710
lea eax, [0x1f97e04]
mov dword [esp], eax
mov dword [esp + 4], 1
call fcn.00402200
mov eax, dword fs:[0x14]
mov eax, dword [eax]
mov ecx, dword [eax + 0x18]
nop
inc dword [ecx + 0x7c]
mov eax, dword [eax + 0x18]
mov dword [esp + 0x50], eax
mov dword [esp + 0x58], 0
mov dword [esp + 0x5c], 0
lea ecx, [0x414d10]
mov dword [esp + 0x58], ecx
lea ecx, [esp + 0x3c]
mov dword [esp + 0x5c], ecx
lea ecx, [esp + 0x58]
mov dword [esp], ecx
call fcn.0045dbe0
lea eax, [0x1f57294]
mov dword [esp], eax
mov byte [esp + 4], 0
mov dword [esp + 8], 0
call fcn.00446cf0
nop
mov eax, dword fs:[0x14]
mov eax, dword [eax]
mov ecx, dword [esp + 0x50]
mov edx, dword [ecx + 0x7c]
lea ebx, [edx - 1]
mov dword [ecx + 0x7c], ebx
cmp edx, 1
jne 0x414c0f
movzx ecx, byte [eax + 0x65]
test cl, cl
je 0x414c07
mov dword [eax + 8], 0xfffffade
mov eax, dword [esp + 0x28]
test eax, eax
jmp 0x414c15
mov eax, dword [esp + 0x28]
test eax, eax
jmp 0x414c15
mov eax, dword [esp + 0x28]
test eax, eax
je 0x414c25
lea eax, [0x1ed5f10]
mov dword [esp], eax
call fcn.0045db80
nop
lea eax, [0x1f735f8]
mov dword [esp], eax
mov byte [esp + 4], 0
mov dword [esp + 8], 0
call fcn.00446cf0
add esp, 0x60
ret
mov dword [esp + 0x24], ecx
mov dword [esp + 0x30], eax
mov eax, dword [esp + 0x4c]
mov eax, dword [eax]
mov dword [esp + 0x2c], eax
call fcn.00435e90
lea eax, [0x4b866f]
mov dword [esp], eax
mov dword [esp + 4], 0xb
call fcn.00436790
mov eax, dword [esp + 0x2c]
mov ecx, eax
sar eax, 0x1f
mov dword [esp + 4], eax
mov dword [esp], ecx
call fcn.00436590
lea eax, [0x4b7d08]
mov dword [esp], eax
mov dword [esp + 4], 0xa
call fcn.00436790
mov dword [esp + 4], 0
mov eax, dword [esp + 0x24]
mov dword [esp], eax
call fcn.00436410
lea eax, [0x4b8d30]
mov dword [esp], eax
mov dword [esp + 4], 0xd
call fcn.00436790
mov dword [esp + 4], 0
mov eax, dword [esp + 0x30]
mov dword [esp], eax
call fcn.00436410
call fcn.004360b0
call fcn.00435f00
lea eax, [0x4bbe02]
mov dword [esp], eax
mov dword [esp + 4], 0x14
call fcn.00434610
nop
call fcn.0045dcf0
jmp fcn.00414690