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

Disassembly:
mov ecx, dword fs:[0x14]
mov ecx, dword [ecx]
lea eax, [esp - 0x4c]
cmp eax, dword [ecx + 8]
jbe 0x617766
sub esp, 0xcc
mov eax, 0
mov dword [esp + 0xc8], eax
mov byte [esp + 0x37], 0
mov byte [esp + 0xd8], 0
mov eax, dword [esp + 0xd0]
movzx ecx, byte [eax + 0x68]
test cl, cl
jne 0x61722c
mov dword [esp], eax
call fcn.004665d0
mov dword [esp + 0x54], 0
mov dword [esp + 0x58], 0
lea eax, [0x6177b0]
mov dword [esp + 0x54], eax
mov eax, dword [esp + 0xd0]
mov dword [esp + 0x58], eax
lea ecx, [esp + 0x54]
mov dword [esp + 0xc8], ecx
mov byte [esp + 0x37], 1
mov byte [eax + 8], 0
mov ecx, dword [esp + 0xd4]
test ecx, ecx
je 0x61720d
lea edi, [esp + 0x70]
mov edx, eax
xor eax, eax
call fcn.0045facb
mov ecx, dword [edx + 0x78]
test ecx, ecx
seta cl
mov ebx, dword [edx + 0x7c]
test ebx, ebx
setg bl
xchg ebp, ebx
sete bl
xchg ebp, ebx
and ecx, ebp
or ebx, ecx
test bl, bl
je 0x6171c0
call fcn.004b08a0
lea edi, [esp + 0x98]
lea esi, [esp]
call fcn.0045ffae
mov eax, dword [esp + 0xd0]
mov ecx, dword [eax + 0x78]
mov dword [esp + 0x44], ecx
xor edx, edx
sub edx, ecx
mov ebx, dword [eax + 0x7c]
lea edi, [esp]
lea esi, [esp + 0x98]
call fcn.0045ffae
xor ecx, ecx
mov ebp, dword [esp + 0x44]
sub ecx, ebp
mov ecx, 0
sbb ecx, ebx
mov dword [esp + 0x18], ecx
mov dword [esp + 0x14], edx
call fcn.004afc80
lea edi, [esp + 0x70]
lea esi, [esp + 0x1c]
call fcn.0045ffae
mov edx, dword [esp + 0xd0]
mov eax, dword [edx + 0xc]
lea ecx, [0x660660]
mov dword [esp], ecx
mov dword [esp + 4], eax
mov eax, dword [esp + 0xd4]
lea ebx, [eax + 0x18]
mov dword [esp + 0x50], ebx
mov dword [esp + 8], ebx
call fcn.0040c470
mov eax, dword [esp + 0xc]
mov ecx, dword [eax]
movzx edx, byte [esp + 0x10]
mov ebx, dword [eax + 4]
mov eax, dword [eax + 8]
test dl, dl
je 0x61723b
mov dword [esp + 0x3c], eax
mov dword [esp + 0x4c], ecx
xor edx, edx
xor ebp, ebp
jmp 0x6173c8
mov byte [esp + 0xd8], 0
mov byte [esp + 0x37], 0
mov edx, dword [esp + 0xc8]
mov eax, dword [edx]
call eax
add esp, 0xcc
ret
mov byte [esp + 0xd8], 0
add esp, 0xcc
ret
mov eax, dword [esp + 0xd0]
mov ecx, dword [eax + 0x10]
test ecx, ecx
jne 0x61727a
call fcn.0040bed0
mov eax, dword [0x894e10]
mov ecx, dword [esp]
test eax, eax
jne 0x617267
mov eax, dword [esp + 0xd0]
mov dword [eax + 0x10], ecx
jmp 0x61727a
mov edx, dword [esp + 0xd0]
lea edi, [edx + 0x10]
mov eax, ecx
call fcn.0045f830
mov eax, edx
mov ecx, dword [eax + 0x10]
lea edx, [0x6606e0]
mov dword [esp], edx
mov dword [esp + 4], ecx
mov ecx, dword [esp + 0x50]
mov dword [esp + 8], ecx
call fcn.0040c2a0
mov esi, dword [esp + 0xc]
lea edi, [esp + 0xac]
call fcn.0045ff9a
lea eax, [esp + 0xac]
mov dword [esp], eax
call fcn.00618300
nop
mov eax, dword [esp + 0xc0]
lea ecx, [eax + 1]
mov edx, dword [esp + 0xbc]
mov ebx, dword [esp + 0xc4]
cmp ebx, ecx
jae 0x61730b
lea ebp, [0x673180]
mov dword [esp], ebp
mov dword [esp + 4], edx
mov dword [esp + 8], eax
mov dword [esp + 0xc], ebx
mov dword [esp + 0x10], ecx
call fcn.00448480
mov edx, dword [esp + 0x14]
mov eax, dword [esp + 0x18]
mov ecx, dword [esp + 0x1c]
mov dword [esp + 0xc4], ecx
mov dword [esp + 0xbc], edx
lea ecx, [eax + 1]
mov dword [esp + 0xc0], ecx
mov ecx, dword [0x894e10]
lea edi, [edx + eax*4]
test ecx, ecx
jne 0x61732e
mov ecx, dword [esp + 0xd4]
mov dword [edx + eax*4], ecx
jmp 0x61733a
mov eax, dword [esp + 0xd4]
call fcn.0045f830
mov eax, dword [esp + 0xd0]
mov eax, dword [eax + 0x10]
lea ecx, [0x6606e0]
mov dword [esp], ecx
mov dword [esp + 4], eax
mov eax, dword [esp + 0x50]
mov dword [esp + 8], eax
call fcn.0040c7f0
mov edi, dword [esp + 0xc]
test byte [edi], al
mov eax, dword [0x894e10]
test eax, eax
jne 0x61737c
lea esi, [esp + 0xac]
call fcn.0045ff9a
jmp 0x617399
lea eax, [0x674b00]
mov dword [esp], eax
mov dword [esp + 4], edi
lea eax, [esp + 0xac]
mov dword [esp + 8], eax
call fcn.004109f0
mov byte [esp + 0xd8], 0
mov byte [esp + 0x37], 0
mov edx, dword [esp + 0xc8]
mov eax, dword [edx]
call eax
add esp, 0xcc
ret
mov ebx, dword [esp + 0x4c]
mov ebx, ecx
mov ebp, eax
mov eax, dword [esp + 0x3c]
mov ecx, dword [esp + 0x4c]
xchg ebp, eax
mov byte [esp + 0x35], al
xchg ebp, eax
mov byte [esp + 0x34], dl
test ebx, ebx
je 0x617706
mov dword [esp + 0x38], ebx
test dl, dl
jne 0x6176af
mov eax, dword [ecx + ebx*4 - 4]
lea edi, [esp + 0x5c]
lea esi, [esp + 0x70]
call fcn.0045ffae
mov ecx, dword [esp + 0x5c]
mov esi, edx
mov edx, dword [esp + 0x60]
test edx, 0x80000000
je 0x617442
shl edx, 1
mov edi, ecx
shr ecx, 0x1f
or edx, ecx
mov dword [esp + 0x44], edx
mov ecx, edi
shl edi, 1
shl edx, 1
shr edi, 0x1f
or edi, edx
mov edx, edi
add edi, 0xd7b17f80
mov ebp, dword [esp + 0x44]
shr ebp, 0x1f
add edx, 0xd7b17f80
adc ebp, 0xd
mov edx, ebp
movzx ebp, byte [esp + 0x35]
jmp 0x61744a
mov edi, dword [esp + 0x64]
mov edx, dword [esp + 0x68]
mov dword [esp + 0x48], eax
test edx, edx
sete dl
test edi, edi
mov edi, ebp
xchg ebp, ebx
sete bl
xchg ebp, ebx
and edx, ebp
test dl, dl
je 0x617470
test ecx, 0x3fffffff
jne 0x617470
xor ecx, ecx
jmp 0x6174ef
test byte [eax], al
lea esi, [eax + 0x64]
lea edi, [esp + 0x84]
call fcn.0045ffae
lea edi, [esp]
lea esi, [esp + 0x84]
call fcn.0045ffae
mov dword [esp + 0x18], 0
mov dword [esp + 0x14], 0
call fcn.004b20e0
lea edi, [esp + 0x98]
lea esi, [esp + 0x1c]
call fcn.0045ffae
lea edi, [esp]
lea esi, [esp + 0x98]
call fcn.0045ffae
lea edi, [esp + 0x14]
lea esi, [esp + 0x70]
call fcn.0045ffae
call fcn.004ae940
movzx eax, byte [esp + 0x28]
mov ebx, dword [esp + 0x38]
movzx esi, byte [esp + 0x34]
movzx edi, byte [esp + 0x35]
mov ecx, eax
mov eax, dword [esp + 0x48]
mov byte [esp + 0x33], cl
test cl, cl
je 0x617540
lea eax, [0x667080]
mov dword [esp], eax
call fcn.0040b400
mov eax, dword [esp + 4]
lea ecx, [0x617770]
mov dword [eax], ecx
mov edx, dword [0x894e10]
test edx, edx
jne 0x617524
mov edx, dword [esp + 0x48]
mov dword [eax + 4], edx
jmp 0x617534
lea edi, [eax + 4]
mov edx, eax
mov eax, dword [esp + 0x48]
call fcn.0045f830
mov eax, edx
mov dword [esp], eax
call fcn.0043f490
mov eax, dword [esp + 0x48]
mov dword [esp], eax
call fcn.0061c770
mov eax, dword [esp + 0x38]
lea ecx, [eax - 1]
movzx edx, byte [esp + 4]
test dl, dl
jne 0x617561
movzx edx, byte [esp + 0x33]
test dl, dl
je 0x617570
movzx edx, byte [esp + 0x34]
movzx eax, byte [esp + 0x35]
jmp 0x6173b8
mov dword [esp + 0x40], ecx
mov eax, dword [esp + 0xd4]
mov dword [esp], eax
mov ecx, dword [esp + 0x48]
mov dword [esp + 4], ecx
mov dword [esp + 8], 0
mov dword [esp + 0xc], 0
call fcn.006180a0
movzx eax, byte [esp + 0x10]
test al, al
je 0x6176a1
mov ecx, dword [esp + 0x48]
mov edx, dword [ecx]
test edx, edx
je 0x6175bb
mov ecx, dword [esp + 0x38]
jmp 0x6176a5
mov byte [esp + 0x36], al
nop
mov eax, dword [esp + 0xd0]
mov edx, dword [eax + 0x18]
lea ebp, [0x660220]
mov dword [esp], ebp
mov dword [esp + 4], edx
mov dword [esp + 8], ecx
call fcn.0040e000
mov eax, dword [esp + 0xc]
mov eax, dword [eax]
movzx ecx, byte [esp + 0x10]
test cl, cl
je 0x617696
mov ecx, dword [esp + 0xd0]
mov edx, dword [ecx + 0x14]
cmp dword [eax + 8], edx
jne 0x617679
mov edi, dword [eax + 4]
test byte [edi], al
nop
mov ebx, dword [0x894e10]
mov ebp, dword [eax]
test ebx, ebx
jne 0x617618
mov dword [edi], ebp
jmp 0x617623
mov ebx, eax
mov eax, ebp
call fcn.0045f830
mov eax, ebx
mov ebx, dword [eax]
test byte [ebx], al
mov ebp, dword [0x894e10]
mov esi, dword [eax + 4]
test ebp, ebp
jne 0x61764d
mov dword [ebx + 4], esi
mov dword [eax], 0
mov dword [eax + 4], 0
mov dword [eax + 8], 0
jmp 0x617676
lea edi, [ebx + 4]
mov ebx, eax
mov eax, esi
call fcn.0045f830
mov edi, ebx
xor eax, eax
call fcn.0045f830
lea ebp, [ebx + 4]
mov edi, ebp
call fcn.0045f830
lea edi, [ebx + 8]
xor eax, eax
call fcn.0045f830
dec dword [edx + 0x14]
mov eax, dword [esp + 0x48]
mov edx, dword [ecx + 0x18]
lea ebx, [0x660220]
mov dword [esp], ebx
mov dword [esp + 4], edx
mov dword [esp + 8], eax
call fcn.0040e730
movzx eax, byte [esp + 0x36]
mov ecx, dword [esp + 0x40]
jmp 0x6176a5
mov ecx, dword [esp + 0x38]
mov edx, 1
jmp 0x6173b8
test ebx, ebx
je 0x617706
mov eax, dword [esp + 0xd0]
mov ecx, dword [eax + 0xc]
lea edx, [0x660660]
mov dword [esp], edx
mov dword [esp + 4], ecx
mov ecx, dword [esp + 0x50]
mov dword [esp + 8], ecx
call fcn.0040c7f0
mov edi, dword [esp + 0xc]
mov eax, dword [esp + 0x38]
mov dword [edi + 4], eax
mov eax, dword [esp + 0x3c]
mov dword [edi + 8], eax
mov eax, dword [0x894e10]
test eax, eax
jne 0x6176fb
mov eax, dword [esp + 0x4c]
mov dword [edi], eax
jmp 0x61772a
mov eax, dword [esp + 0x4c]
call fcn.0045f830
jmp 0x61772a
mov eax, dword [esp + 0xd0]
mov ecx, dword [eax + 0xc]
lea edx, [0x660660]
mov dword [esp], edx
mov dword [esp + 4], ecx
mov ecx, dword [esp + 0x50]
mov dword [esp + 8], ecx
call fcn.0040ccd0
movzx eax, byte [esp + 0x34]
test al, al
je 0x61723b
movzx eax, byte [esp + 0x35]
mov byte [esp + 0xd8], al
mov byte [esp + 0x37], 0
mov edx, dword [esp + 0xc8]
mov eax, dword [edx]
call eax
add esp, 0xcc
ret
call fcn.0045e420
jmp fcn.00617090