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

Disassembly:
mov ecx, dword fs:[0x14]
mov ecx, dword [ecx]
lea eax, [esp - 0x3c]
cmp eax, dword [ecx + 8]
jbe 0x61193c
sub esp, 0xbc
mov ecx, dword [esp + 0xc8]
test ecx, ecx
jbe 0x611934
mov edx, dword [esp + 0xc4]
movzx ebx, byte [edx]
cmp ecx, 5
jb 0x61192a
mov byte [esp + 0x4b], bl
mov eax, dword [esp + 0xcc]
lea ebp, [eax - 5]
mov dword [esp + 0x74], ebp
mov esi, ebp
xchg ebp, ebx
neg ebx
xchg ebp, ebx
sar ebp, 0x1f
and ebp, 5
add ebp, edx
mov dword [esp + 0xac], ebp
add ecx, 0xfffffffb
mov dword [esp + 0x5c], ecx
mov edi, dword [esp + 0xc0]
cmp word [edi + 0x10], 0x304
jne 0x610e6a
cmp bl, 0x14
je 0x6118a1
mov dword [esp], edi
call fcn.00610b80
mov eax, dword [esp + 4]
mov ecx, dword [esp + 0xc0]
mov edx, dword [ecx + 0x18]
mov ebx, dword [ecx + 0x14]
test ebx, ebx
je 0x611875
je 0x611912
mov dword [esp + 0x70], eax
mov dword [esp + 0xb8], edx
mov dword [esp + 0x90], ebx
lea eax, [0x941fa0]
mov dword [esp], eax
mov dword [esp + 4], ebx
mov dword [esp + 8], edx
call fcn.00408ca0
movzx eax, byte [esp + 0x14]
mov ecx, dword [esp + 0x10]
mov edx, dword [esp + 0xc]
test al, al
je 0x611362
mov eax, dword [edx + 0x10]
mov dword [esp], ecx
mov ecx, dword [esp + 0xac]
mov dword [esp + 4], ecx
mov edx, dword [esp + 0x5c]
mov dword [esp + 8], edx
mov ebx, dword [esp + 0x74]
mov dword [esp + 0xc], ebx
mov dword [esp + 0x10], ecx
mov dword [esp + 0x14], edx
mov dword [esp + 0x18], ebx
call eax
mov eax, dword [esp + 0x74]
mov ecx, dword [esp + 0xac]
mov edx, dword [esp + 0x5c]
xor ebx, ebx
mov ebp, 0xffffffff
xor esi, esi
xor edi, edi
xor eax, eax
mov dword [esp + 0xa0], eax
mov eax, dword [esp + 0x74]
mov dword [esp + 0x58], esi
xchg ebp, eax
mov byte [esp + 0x4a], al
xchg ebp, eax
mov dword [esp + 0x6c], ebx
mov dword [esp + 0x5c], edx
mov edx, dword [esp + 0xc0]
cmp word [edx + 0x10], 0x304
jne 0x61134f
movzx edx, byte [esp + 0x4b]
cmp dl, 0x17
jne 0x6112fc
cmp edi, 0x4001
jg 0x6112a9
lea ebx, [edi - 1]
jmp 0x610f72
dec ebx
movzx ebp, byte [esp + 0x4a]
mov esi, dword [esp + 0x58]
test ebx, ebx
jl 0x611299
cmp ebx, edi
jae 0x6118ef
mov ebp, dword [esp + 0xa0]
movzx esi, byte [ebp + ebx]
xchg esi, eax
test al, al
xchg esi, eax
jne 0x610feb
test ebx, ebx
jne 0x610f68
movzx eax, byte [0xa9a7fe]
mov dword [esp + 0xd0], 0
mov dword [esp + 0xd4], 0
mov dword [esp + 0xd8], 0
mov byte [esp + 0xdc], 0
lea ecx, [0xaa5b50]
mov dword [esp + 0xe0], ecx
lea ecx, [0xe19fc0]
add eax, ecx
mov dword [esp + 0xe4], eax
add esp, 0xbc
ret
mov edx, dword [esp + 0x5c]
mov edi, dword [esp + 0x6c]
mov dword [esp + 0x68], eax
mov dword [esp + 0xa4], ecx
mov dword [esp + 0x6c], edi
xchg esi, eax
mov byte [esp + 0x49], al
xchg esi, eax
mov ecx, dword [esp + 0xc0]
mov eax, dword [ecx + 0x1c]
mov edi, dword [ecx + 0x20]
test eax, eax
jne 0x611081
mov eax, dword [esp + 0x58]
mov dword [esp + 0x58], eax
mov dword [esp + 0x54], ebx
mov dword [esp + 0xa0], ebp
mov dword [esp], ecx
call fcn.00610b10
mov eax, dword [esp + 0xa0]
mov dword [esp + 0xd0], eax
mov eax, dword [esp + 0x54]
mov dword [esp + 0xd4], eax
mov eax, dword [esp + 0x58]
mov dword [esp + 0xd8], eax
movzx eax, byte [esp + 0x49]
mov byte [esp + 0xdc], al
mov dword [esp + 0xe0], 0
mov dword [esp + 0xe4], 0
add esp, 0xbc
ret
mov dword [esp + 0x5c], edx
mov eax, dword [eax + 0x14]
mov dword [esp], edi
call eax
mov eax, dword [esp + 4]
mov ecx, dword [esp + 0x5c]
cmp ecx, eax
jl 0x611246
mov ebx, ecx
sub ecx, eax
mov ebp, dword [esp + 0x6c]
sub ecx, ebp
mov ebp, ecx
shr ecx, 0x1f
lea esi, [ecx - 1]
and esi, ebp
mov ebp, esi
sar esi, 8
mov edi, dword [esp + 0xc4]
xchg esi, eax
mov byte [edi + 3], al
xchg esi, eax
xchg ebp, eax
mov byte [edi + 4], al
xchg ebp, eax
lea ecx, [ebp + eax]
mov edx, dword [esp + 0x68]
cmp ecx, edx
ja 0x6118ea
cmp ebp, ecx
ja 0x6118e3
sub edx, ebp
mov dword [esp + 0x50], edx
neg edx
sar edx, 0x1f
and edx, ebp
mov esi, dword [esp + 0xa4]
add edx, esi
cmp ecx, ebx
ja 0x6118da
mov dword [esp + 0x4c], eax
mov dword [esp + 0x8c], ebp
mov dword [esp + 0x9c], edx
mov eax, dword [esp + 0xc0]
mov edx, dword [eax + 0x1c]
mov ebx, dword [eax + 0x20]
mov edx, dword [edx + 0x10]
mov dword [esp], ebx
lea ebx, [eax + 0x24]
mov dword [esp + 4], ebx
mov dword [esp + 8], 8
mov dword [esp + 0xc], 8
mov dword [esp + 0x10], edi
mov dword [esp + 0x14], 5
mov ebx, dword [esp + 0xcc]
mov dword [esp + 0x18], ebx
mov dword [esp + 0x1c], esi
mov dword [esp + 0x20], ebp
mov ebx, dword [esp + 0x68]
mov dword [esp + 0x24], ebx
sub ebx, ecx
mov dword [esp + 0x88], ebx
neg ebx
sar ebx, 0x1f
and ebx, ecx
add ebx, esi
mov dword [esp + 0x28], ebx
mov ebx, dword [esp + 0x5c]
sub ebx, ecx
mov dword [esp + 0x2c], ebx
mov ecx, dword [esp + 0x88]
mov dword [esp + 0x30], ecx
call edx
mov eax, dword [esp + 0x38]
mov ecx, dword [esp + 0x3c]
mov edx, dword [esp + 0x34]
mov dword [esp], edx
mov dword [esp + 4], eax
mov dword [esp + 8], ecx
mov eax, dword [esp + 0x9c]
mov dword [esp + 0xc], eax
mov eax, dword [esp + 0x4c]
mov dword [esp + 0x10], eax
mov eax, dword [esp + 0x50]
mov dword [esp + 0x14], eax
call fcn.005353b0
movzx eax, byte [esp + 0x4a]
movzx eax, al
and eax, dword [esp + 0x18]
cmp eax, 1
jne 0x6111f3
mov ecx, dword [esp + 0xc0]
mov eax, dword [esp + 0x68]
mov ebx, dword [esp + 0x8c]
mov ebp, dword [esp + 0xa4]
jmp 0x61101d
movzx eax, byte [0xa9a800]
mov dword [esp + 0xd0], 0
mov dword [esp + 0xd4], 0
mov dword [esp + 0xd8], 0
mov byte [esp + 0xdc], 0
lea ecx, [0xaa5b50]
mov dword [esp + 0xe0], ecx
lea ecx, [0xe19fc0]
add eax, ecx
mov dword [esp + 0xe4], eax
add esp, 0xbc
ret
movzx eax, byte [0xa9a7ff]
mov dword [esp + 0xd0], 0
mov dword [esp + 0xd4], 0
mov dword [esp + 0xd8], 0
mov byte [esp + 0xdc], 0
lea ecx, [0xaa5b50]
mov dword [esp + 0xe0], ecx
lea ecx, [0xe19fc0]
add eax, ecx
mov dword [esp + 0xe4], eax
add esp, 0xbc
ret
mov ebp, dword [esp + 0xa0]
mov ebx, edi
mov esi, edx
jmp 0x610feb
movzx eax, byte [0xa9a7fd]
mov dword [esp + 0xd0], 0
mov dword [esp + 0xd4], 0
mov dword [esp + 0xd8], 0
mov byte [esp + 0xdc], 0
lea ecx, [0xaa5b50]
mov dword [esp + 0xe0], ecx
lea ecx, [0xe19fc0]
add eax, ecx
mov dword [esp + 0xe4], eax
add esp, 0xbc
ret
movzx eax, byte [0xa9a7fc]
mov dword [esp + 0xd0], 0
mov dword [esp + 0xd4], 0
mov dword [esp + 0xd8], 0
mov byte [esp + 0xdc], 0
lea ecx, [0xaa5b50]
mov dword [esp + 0xe0], ecx
lea ecx, [0xe19fc0]
add eax, ecx
mov dword [esp + 0xe4], eax
add esp, 0xbc
ret
mov ebp, dword [esp + 0xa0]
mov ebx, edi
movzx esi, byte [esp + 0x4b]
jmp 0x610feb
lea eax, [0x971240]
mov dword [esp], eax
mov eax, dword [esp + 0x90]
mov dword [esp + 4], eax
mov ecx, dword [esp + 0xb8]
mov dword [esp + 8], ecx
call fcn.00408ca0
movzx eax, byte [esp + 0x14]
mov ecx, dword [esp + 0xc]
mov edx, dword [esp + 0x10]
test al, al
jne 0x6115fb
lea eax, [0x956ac0]
mov dword [esp], eax
mov eax, dword [esp + 0x90]
mov dword [esp + 4], eax
mov eax, dword [esp + 0xb8]
mov dword [esp + 8], eax
call fcn.00408ca0
mov eax, dword [esp + 0x10]
mov ecx, dword [esp + 0xc]
movzx edx, byte [esp + 0x14]
test dl, dl
je 0x611912
mov dword [esp + 0xb0], eax
mov dword [esp + 0x7c], ecx
mov edx, dword [ecx + 0x10]
mov dword [esp], eax
call edx
mov eax, dword [esp + 0xc0]
mov ecx, dword [eax + 0x1c]
mov edx, dword [esp + 4]
mov dword [esp + 0x80], edx
mov ebx, dword [eax + 0x20]
mov ecx, dword [ecx + 0x14]
mov dword [esp], ebx
call ecx
mov eax, dword [esp + 4]
mov ecx, dword [esp + 0x80]
test ecx, ecx
je 0x611904
lea ebx, [eax + 1]
mov edx, eax
mov eax, ebx
mov ebx, edx
cmp ecx, 0xffffffff
je 0x61142d
cdq
idiv ecx
jmp 0x61142f
xor edx, edx
mov eax, ecx
sub eax, edx
cmp ecx, 0xffffffff
je 0x61143d
cdq
idiv ecx
jmp 0x61143f
xor edx, edx
add ebx, edx
mov ebp, dword [esp + 0x70]
lea ebx, [ebx + ebp + 1]
mov eax, dword [esp + 0x5c]
cdq
idiv ecx
test edx, edx
jne 0x6115a8
mov eax, dword [esp + 0x5c]
cmp eax, ebx
jl 0x6115a8
test ebp, ebp
jle 0x611594
mov edx, dword [esp + 0x74]
cmp ebp, edx
ja 0x6118fd
mov eax, dword [esp + 0x7c]
mov ecx, dword [eax + 0x18]
mov ebx, dword [esp + 0xb0]
mov dword [esp], ebx
mov esi, dword [esp + 0xac]
mov dword [esp + 4], esi
mov dword [esp + 8], ebp
mov dword [esp + 0xc], edx
call ecx
mov eax, dword [esp + 0x70]
mov ecx, dword [esp + 0x5c]
cmp eax, ecx
ja 0x6118f8
sub ecx, eax
mov edx, dword [esp + 0x74]
sub edx, eax
mov ebx, edx
neg edx
sar edx, 0x1f
and eax, edx
mov edx, dword [esp + 0xac]
add eax, edx
mov dword [esp + 0xa8], eax
mov dword [esp + 0x60], ecx
mov dword [esp + 0x64], ebx
mov edx, dword [esp + 0x7c]
mov edx, dword [edx + 0x14]
mov ebp, dword [esp + 0xb0]
mov dword [esp], ebp
mov dword [esp + 4], eax
mov dword [esp + 8], ecx
mov dword [esp + 0xc], ebx
mov dword [esp + 0x10], eax
mov dword [esp + 0x14], ecx
mov dword [esp + 0x18], ebx
call edx
mov eax, dword [esp + 0xc0]
cmp word [eax + 0x10], 0x300
jne 0x61155f
mov edx, dword [esp + 0x60]
cmp edx, 1
jge 0x61153f
xor ecx, ecx
xor ebx, ebx
mov eax, dword [esp + 0x64]
mov ebp, ebx
xor esi, esi
xor edi, edi
xor ebx, ebx
mov dword [esp + 0xa0], ebx
mov ebx, ecx
mov ecx, dword [esp + 0xa8]
jmp 0x610f24
mov ebx, dword [esp + 0xa8]
movzx ebp, byte [edx + ebx - 1]
inc ebp
cmp ebp, edx
jle 0x611556
xor ecx, ecx
xor ebx, ebx
jmp 0x61151e
mov ecx, ebp
mov ebx, 0xffffffff
jmp 0x61151e
mov eax, dword [esp + 0xa8]
mov dword [esp], eax
mov ecx, dword [esp + 0x60]
mov dword [esp + 4], ecx
mov edx, dword [esp + 0x64]
mov dword [esp + 8], edx
call fcn.00610cc0
mov ecx, dword [esp + 0xc]
movzx ebx, byte [esp + 0x10]
mov eax, dword [esp + 0xc0]
mov edx, dword [esp + 0x60]
jmp 0x61151e
mov eax, dword [esp + 0xac]
mov ecx, dword [esp + 0x5c]
mov ebx, dword [esp + 0x74]
jmp 0x6114c8
movzx eax, byte [0xa9a7fb]
mov dword [esp + 0xd0], 0
mov dword [esp + 0xd4], 0
mov dword [esp + 0xd8], 0
mov byte [esp + 0xdc], 0
lea ecx, [0xaa5b50]
mov dword [esp + 0xe0], ecx
lea ecx, [0xe19fc0]
add eax, ecx
mov dword [esp + 0xe4], eax
add esp, 0xbc
ret
mov eax, dword [esp + 0x5c]
mov ebx, dword [esp + 0x70]
cmp eax, ebx
jl 0x611822
mov ebp, dword [esp + 0x74]
cmp ebx, ebp
ja 0x611909
test ebx, ebx
jne 0x61180f
mov esi, dword [esp + 0xc0]
lea edi, [esi + 0x24]
mov dword [esp + 0x94], eax
mov eax, 8
mov dword [esp + 0x74], eax
mov eax, 8
mov dword [esp + 0x70], eax
mov eax, dword [esp + 0x94]
mov dword [esp + 0xb8], edi
sub ebp, ebx
mov dword [esp + 0x68], ebp
xchg ebp, ebx
neg ebx
xchg ebp, ebx
sar ebp, 0x1f
and ebp, ebx
mov edi, dword [esp + 0xac]
add ebp, edi
mov dword [esp + 0xa4], ebp
sub eax, ebx
mov dword [esp + 0x5c], eax
cmp word [esi + 0x10], 0x304
jne 0x611787
mov ebx, dword [esp + 0xc4]
mov edi, 5
mov ebx, dword [esp + 0xcc]
mov dword [esp + 0x84], ebx
mov ebx, dword [esp + 0xc4]
mov ecx, dword [ecx + 0x14]
mov dword [esp], edx
mov dword [esp + 4], ebp
mov dword [esp + 8], 0
mov edx, dword [esp + 0x68]
mov dword [esp + 0xc], edx
mov esi, dword [esp + 0xb8]
mov dword [esp + 0x10], esi
mov esi, dword [esp + 0x70]
mov dword [esp + 0x14], esi
mov esi, dword [esp + 0x74]
mov dword [esp + 0x18], esi
mov dword [esp + 0x1c], ebp
mov dword [esp + 0x20], eax
mov dword [esp + 0x24], edx
mov dword [esp + 0x28], ebx
mov dword [esp + 0x2c], edi
mov ebx, dword [esp + 0x84]
mov dword [esp + 0x30], ebx
call ecx
mov eax, dword [esp + 0x38]
mov ecx, dword [esp + 0x3c]
mov edx, dword [esp + 0x34]
mov ebx, dword [esp + 0x40]
test ebx, ebx
jne 0x611734
xor ebx, ebx
mov ebp, 0xffffffff
mov esi, ecx
mov edi, eax
mov dword [esp + 0xa0], edx
mov eax, dword [esp + 0x68]
mov ecx, dword [esp + 0xa4]
mov edx, dword [esp + 0x5c]
jmp 0x610f24
movzx eax, byte [0xa9a7fa]
mov dword [esp + 0xd0], 0
mov dword [esp + 0xd4], 0
mov dword [esp + 0xd8], 0
mov byte [esp + 0xdc], 0
lea ecx, [0xaa5b50]
mov dword [esp + 0xe0], ecx
lea ecx, [0xe19fc0]
add eax, ecx
mov dword [esp + 0xe4], eax
add esp, 0xbc
ret
mov ebx, dword [esi + 0x28]
mov edi, dword [esi + 0x24]
mov dword [esi + 0x2c], edi
mov dword [esi + 0x30], ebx
lea ebx, [esi + 0x34]
mov edi, dword [esp + 0xc4]
cmp ebx, edi
je 0x6117af
movzx ebx, byte [edi + 2]
movzx edi, word [edi]
mov word [esi + 0x34], di
mov byte [esi + 0x36], bl
mov dword [esp + 0x78], ecx
mov dword [esp + 0xb4], edx
mov eax, dword [ecx + 0x18]
mov dword [esp], edx
call eax
mov eax, dword [esp + 4]
mov ecx, dword [esp + 0x5c]
sub ecx, eax
mov eax, ecx
sar ecx, 8
mov ebx, dword [esp + 0xc0]
mov byte [ebx + 0x37], cl
mov byte [ebx + 0x38], al
lea eax, [ebx + 0x2c]
mov ecx, dword [esp + 0x78]
mov edx, dword [esp + 0xb4]
mov ebp, dword [esp + 0xa4]
mov ebx, eax
mov edi, 0xd
mov esi, 0xd
mov dword [esp + 0x84], esi
mov eax, dword [esp + 0x5c]
jmp 0x6116a4
mov esi, dword [esp + 0xc0]
mov edi, dword [esp + 0xac]
jmp 0x611649
movzx eax, byte [0xa9a7f9]
mov dword [esp + 0xd0], 0
mov dword [esp + 0xd4], 0
mov dword [esp + 0xd8], 0
mov byte [esp + 0xdc], 0
lea ecx, [0xaa5b50]
mov dword [esp + 0xe0], ecx
lea ecx, [0xe19fc0]
add eax, ecx
mov dword [esp + 0xe4], eax
add esp, 0xbc
ret
mov eax, dword [esp + 0x74]
mov edx, dword [esp + 0x5c]
mov ecx, dword [esp + 0xac]
xor edi, edi
mov ebx, 0xffffffff
mov byte [esp + 0x4a], bl
mov ebx, edx
mov ebp, ecx
mov dword [esp + 0x58], eax
movzx esi, byte [esp + 0x4b]
jmp 0x610ff3
mov dword [esp + 0xd0], ebp
mov dword [esp + 0xd4], ecx
mov dword [esp + 0xd8], esi
mov byte [esp + 0xdc], bl
mov dword [esp + 0xe0], 0
mov dword [esp + 0xe4], 0
add esp, 0xbc
ret
mov eax, ecx
mov ecx, ebx
call fcn.00456b90
mov eax, ebp
call fcn.00456b90
call fcn.00456b70
mov eax, ebx
mov ecx, edi
call fcn.00456b30
call fcn.00456b90
mov ecx, ebp
call fcn.00456b70
call fcn.0042c070
mov ecx, ebx
mov edx, ebp
call fcn.00456b70
lea eax, [0x92c840]
mov dword [esp], eax
lea eax, [0xa9b670]
mov dword [esp + 4], eax
call fcn.0042cc50
mov eax, 5
call fcn.00456b90
xor eax, eax
call fcn.00456b30
nop
call fcn.00455270
jmp fcn.00610de0