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

Disassembly:
mov ecx, dword fs:[0x14]
mov ecx, dword [ecx]
cmp esp, dword [ecx + 8]
jbe 0x61b0f6
add esp, 0xffffff80
lea edi, [esp + 0x58]
lea esi, [0x703c90]
call fcn.004514b8
xor eax, eax
xor ecx, ecx
xor edx, edx
jmp 0x61aa5b
lea ebx, [edx + 1]
mov eax, ebx
mov ecx, esi
mov edx, dword [esp + 0x70]
cmp eax, 2
jge 0x61b080
mov dword [esp + 0x28], eax
lea ecx, [esp + eax*8 + 0x58]
mov edx, dword [ecx]
mov ebx, dword [esp + 0x8c]
cmp edx, ebx
xchg ebp, ebx
seta bl
xchg ebp, ebx
mov ecx, dword [ecx + 4]
mov esi, dword [esp + 0x90]
cmp ecx, esi
xchg edi, ebx
sete bl
xchg edi, ebx
setg al
and edi, ebp
or edi, eax
xchg edi, eax
test al, al
xchg edi, eax
je 0x61b077
mov dword [esp + 0x34], ebx
mov dword [esp + 0x38], esi
lea eax, [0x659d80]
mov dword [esp], eax
mov dword [esp + 4], ebx
mov dword [esp + 8], ebx
call fcn.0043c2b0
mov eax, dword [esp + 0x8c]
mov ecx, dword [esp + 0x34]
sub eax, ecx
mov dword [esp + 0x54], eax
mov ebx, dword [esp + 0xc]
mov dword [esp + 0x70], ebx
mov ebp, dword [esp + 0x84]
mov esi, dword [ebp + 0x10]
mov edi, dword [esp + 0x88]
mov dword [esp], edi
mov dword [esp + 4], ebx
mov dword [esp + 8], ecx
mov dword [esp + 0xc], ecx
mov dword [esp + 0x10], eax
mov edi, dword [esp + 0x90]
mov ebp, dword [esp + 0x38]
sbb edi, ebp
mov dword [esp + 0x50], edi
mov dword [esp + 0x14], edi
call esi
mov eax, dword [esp + 0x20]
mov ecx, dword [esp + 0x1c]
test ecx, ecx
je 0x61b070
cmp dword [0x8ad9e8], ecx
je 0x61b03d
mov edx, 1
test dl, dl
jne 0x61b020
mov eax, dword [esp + 0x70]
mov dword [esp], eax
mov ecx, dword [esp + 0x34]
mov dword [esp + 4], ecx
mov dword [esp + 8], ecx
call fcn.0061b7a0
mov eax, dword [esp + 0xc]
test eax, eax
jge 0x61abbf
mov edx, dword [esp + 0x28]
cmp edx, 1
je 0x61ab96
mov ebx, dword [esp + 0x38]
mov ebp, dword [esp + 0x90]
cmp ebx, ebp
sete bl
mov esi, dword [esp + 0x34]
mov edi, dword [esp + 0x8c]
cmp esi, edi
xchg ebp, ebx
sete bl
xchg ebp, ebx
and ebp, ebx
xchg ebp, eax
test al, al
xchg ebp, eax
je 0x61aa50
mov eax, dword [0x8ad7b8]
mov ecx, dword [0x8ad7bc]
mov dword [esp + 0x94], 0
mov dword [esp + 0x98], eax
mov dword [esp + 0x9c], ecx
sub esp, 0xffffff80
ret
mov ecx, dword [esp + 0x34]
cmp eax, ecx
ja 0x61b0f0
mov edx, dword [esp + 0x54]
mov ebx, edx
add edx, eax
mov ebp, eax
sar eax, 0x1f
add ebx, ebp
mov ebx, dword [esp + 0x50]
adc ebx, eax
sub ecx, ebp
mov esi, ecx
neg ecx
sar ecx, 0x1f
and ecx, ebp
mov ebp, dword [esp + 0x70]
add ebp, ecx
cmp esi, 4
jb 0x61b0e4
lea ecx, [esi - 4]
mov edi, ecx
neg ecx
sar ecx, 0x1f
and ecx, 4
mov eax, ebx
lea ebx, [ebp + ecx]
mov dword [esp + 0x74], ebx
mov dword [esp + 0x78], edi
mov dword [esp + 0x7c], edi
nop
cmp edi, 1
jbe 0x61b0d8
mov dword [esp + 0x30], edx
movzx ebp, word [ebp + ecx]
lea ecx, [esi - 6]
mov dword [esp + 0x78], ecx
mov dword [esp + 0x7c], ecx
mov edi, ecx
neg ecx
sar ecx, 0x1f
and ecx, 2
lea edx, [ebx + ecx]
mov dword [esp + 0x74], edx
nop
cmp edi, 1
jbe 0x61b0cc
movzx ebx, word [ebx + ecx]
mov dword [esp + 0x54], ebx
lea ecx, [esi - 8]
mov dword [esp + 0x78], ecx
mov dword [esp + 0x7c], ecx
mov edi, ecx
neg ecx
sar ecx, 0x1f
and ecx, 2
lea ebx, [edx + ecx]
mov dword [esp + 0x74], ebx
nop
cmp edi, 1
jbe 0x61b0c0
movzx edx, word [edx + ecx]
mov dword [esp + 0x4c], edx
lea ecx, [esi - 0xa]
mov dword [esp + 0x78], ecx
mov dword [esp + 0x7c], ecx
mov edi, ecx
neg ecx
sar ecx, 0x1f
and ecx, 2
lea edx, [ebx + ecx]
mov dword [esp + 0x74], edx
nop
cmp edi, 1
jbe 0x61b0b4
movzx ebx, word [ebx + ecx]
mov dword [esp + 0x48], ebx
lea ecx, [esi - 0xc]
mov dword [esp + 0x78], ecx
mov dword [esp + 0x7c], ecx
mov edi, ecx
neg ecx
sar ecx, 0x1f
and ecx, 2
lea ebx, [ecx + edx]
mov dword [esp + 0x74], ebx
nop
cmp edi, 3
jbe 0x61b0a8
lea edi, [esi - 0x10]
mov edx, dword [edx + ecx]
mov dword [esp + 0x44], edx
mov dword [esp + 0x78], edi
mov dword [esp + 0x7c], edi
mov ecx, edi
xchg edi, ebx
neg ebx
xchg edi, ebx
sar edi, 0x1f
and edi, 4
lea edx, [edi + ebx]
mov dword [esp + 0x74], edx
nop
cmp ecx, 3
jbe 0x61b09e
lea ecx, [esi - 0x14]
mov ebx, dword [ebx + edi]
mov dword [esp + 0x40], ebx
mov dword [esp + 0x78], ecx
mov dword [esp + 0x7c], ecx
mov edi, ecx
neg ecx
sar ecx, 0x1f
and ecx, 4
lea ebx, [ecx + edx]
mov dword [esp + 0x74], ebx
nop
cmp edi, 1
jbe 0x61b092
mov dword [esp + 0x3c], ebp
mov dword [esp + 0x50], eax
lea eax, [esi - 0x16]
movzx ecx, word [edx + ecx]
mov word [esp + 0x26], cx
mov dword [esp + 0x78], eax
mov dword [esp + 0x7c], eax
neg eax
sar eax, 0x1f
and eax, 2
add eax, ebx
mov dword [esp + 0x74], eax
lea eax, [0x68a000]
mov dword [esp], eax
call fcn.0040a500
mov eax, dword [esp + 4]
mov ecx, dword [esp + 0x3c]
mov dword [eax], ecx
mov ecx, dword [esp + 0x54]
mov dword [eax + 4], ecx
mov ecx, dword [esp + 0x4c]
mov dword [eax + 8], ecx
mov dword [eax + 0xc], 0
mov ecx, dword [esp + 0x48]
mov dword [eax + 0x10], ecx
mov dword [eax + 0x14], 0
mov ecx, dword [esp + 0x44]
mov dword [eax + 0x18], ecx
mov dword [eax + 0x1c], 0
mov ecx, dword [esp + 0x40]
mov dword [eax + 0x20], ecx
mov dword [eax + 0x24], 0
movzx ecx, word [esp + 0x26]
mov word [eax + 0x28], cx
movzx ecx, cx
mov edx, dword [esp + 0x7c]
mov ebx, dword [esp + 0x74]
lea ebp, [esp + 0x74]
cmp dword [ebp + 4], ecx
jl 0x61afdc
cmp ecx, edx
ja 0x61b08d
mov dword [esp + 0x6c], eax
mov dword [esp], 0
mov dword [esp + 4], ebx
mov dword [esp + 8], ecx
mov dword [esp + 0xc], edx
call fcn.0043f830
mov eax, dword [esp + 0x14]
mov ecx, dword [esp + 0x10]
mov edx, dword [esp + 0x6c]
mov dword [edx + 0x30], eax
mov eax, dword [0x8c1190]
test eax, eax
jne 0x61afcd
mov dword [edx + 0x2c], ecx
cmp dword [edx + 0x10], 0xffff
sete al
mov ecx, dword [edx + 0x14]
test ecx, ecx
sete cl
and ecx, eax
test cl, cl
je 0x61af93
mov eax, dword [esp + 0x84]
mov dword [esp], eax
mov ecx, dword [esp + 0x88]
mov dword [esp + 4], ecx
mov edx, dword [esp + 0x30]
mov dword [esp + 8], edx
mov edx, dword [esp + 0x50]
mov dword [esp + 0xc], edx
call fcn.0061b100
mov eax, dword [esp + 0x10]
mov ecx, dword [esp + 0x14]
mov edx, dword [esp + 0x1c]
mov ebx, dword [esp + 0x18]
test ebx, ebx
je 0x61af35
test ebx, ebx
jne 0x61af18
mov eax, dword [esp + 0x6c]
mov ecx, dword [eax + 0x24]
test ecx, ecx
sete dl
setl bl
mov ebp, dword [eax + 0x20]
test ebp, ebp
xchg esi, ebx
setb bl
xchg esi, ebx
and esi, edx
or esi, ebx
xchg esi, eax
test al, al
xchg esi, eax
je 0x61aed4
mov eax, dword [0x8ad7bc]
mov ecx, dword [0x8ad7b8]
mov dword [esp + 0x94], 0
mov dword [esp + 0x98], ecx
mov dword [esp + 0x9c], eax
sub esp, 0xffffff80
ret
mov edx, dword [esp + 0x8c]
cmp ebp, edx
setae dl
mov ebx, dword [esp + 0x90]
cmp ecx, ebx
sete cl
setg bl
and ecx, edx
or ebx, ecx
test bl, bl
jne 0x61aeab
mov dword [esp + 0x94], eax
mov dword [esp + 0x98], 0
mov dword [esp + 0x9c], 0
sub esp, 0xffffff80
ret
mov dword [esp + 0x94], 0
mov dword [esp + 0x98], ebx
mov dword [esp + 0x9c], edx
sub esp, 0xffffff80
ret
test eax, eax
xchg ebp, ebx
setae bl
xchg ebp, ebx
test ecx, ecx
xchg esi, ebx
sete bl
xchg esi, ebx
xchg edi, ebx
setg bl
xchg edi, ebx
and esi, ebp
or edi, esi
xchg edi, eax
test al, al
xchg edi, eax
je 0x61ae7e
mov edx, dword [esp + 0x84]
mov dword [esp], edx
mov edx, dword [esp + 0x88]
mov dword [esp + 4], edx
mov dword [esp + 8], eax
mov dword [esp + 0xc], ecx
mov eax, dword [esp + 0x6c]
mov dword [esp + 0x10], eax
call fcn.0061b3a0
mov edx, dword [esp + 0x18]
mov ebx, dword [esp + 0x14]
jmp 0x61ae7e
mov eax, dword [edx + 0x1c]
test eax, eax
sete al
cmp dword [edx + 0x18], 0xffff
sete cl
and ecx, eax
test cl, cl
jne 0x61ae3c
mov eax, dword [edx + 0x24]
test eax, eax
sete al
cmp dword [edx + 0x20], 0xffffffff
sete cl
and ecx, eax
test cl, cl
jne 0x61ae3c
jmp 0x61ae86
lea edi, [edx + 0x2c]
mov eax, ecx
call fcn.00450d20
jmp 0x61ae20
lea eax, [0x666840]
mov dword [esp], eax
call fcn.0040a500
mov eax, dword [esp + 4]
mov dword [eax + 4], 0x1b
lea ecx, [0x6a9c0c]
mov dword [eax], ecx
mov dword [esp + 0x94], 0
lea ecx, [0x704720]
mov dword [esp + 0x98], ecx
mov dword [esp + 0x9c], eax
sub esp, 0xffffff80
ret
mov dword [esp + 0x94], 0
mov dword [esp + 0x98], ecx
mov dword [esp + 0x9c], eax
sub esp, 0xffffff80
ret
mov dword [esp + 0x68], eax
mov dword [esp + 0x2c], ecx
mov dword [esp], ecx
mov dword [esp + 4], eax
mov edx, dword [0x8ad9ec]
mov dword [esp + 8], edx
call fcn.00402fc0
movzx edx, byte [esp + 0xc]
xor edx, 1
mov eax, dword [esp + 0x68]
mov ecx, dword [esp + 0x2c]
jmp 0x61ab35
xor edx, edx
jmp 0x61ab35
mov ebx, edx
mov esi, ecx
jmp 0x61aaa2
mov esi, ecx
mov ebp, edx
xor edx, edx
xor ebx, ebx
jmp 0x61abf1
call fcn.00450de0
mov eax, 1
mov ecx, edi
call fcn.00450da0
mov eax, 3
call fcn.00450da0
mov eax, 3
mov ecx, edi
call fcn.00450da0
mov eax, 1
mov ecx, edi
call fcn.00450da0
mov eax, 1
mov ecx, edi
call fcn.00450da0
mov eax, 1
mov ecx, edi
call fcn.00450da0
mov eax, 1
mov ecx, edi
call fcn.00450da0
mov eax, 4
mov ecx, esi
call fcn.00450e00
call fcn.00450e00
nop
call fcn.0044f4e0
jmp fcn.0061aa20