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

Disassembly:
mov ecx, dword fs:[0x14]
mov ecx, dword [ecx]
cmp esp, dword [ecx + 8]
jbe 0x614dd2
sub esp, 0x40
mov edx, dword [esp + 0x44]
cmp edx, 0xc
jae 0x61470c
lea eax, [edx - 4]
mov ecx, dword [esp + 0x4c]
cmp ecx, eax
jbe 0x614dcc
mov ebx, dword [esp + 0x48]
movzx ebx, byte [edx + ebx - 4]
mov ecx, dword [esp + 0x58]
cmp ecx, eax
jbe 0x614dc7
mov dword [esp + 0x3c], eax
mov eax, dword [esp + 0x54]
movzx eax, word [eax + edx*2 - 8]
mov dword [esp], ebx
mov dword [esp + 8], 0
mov dword [esp + 4], eax
mov eax, dword [esp + 0x6c]
mov dword [esp + 0xc], eax
mov eax, dword [esp + 0x70]
mov dword [esp + 0x10], eax
mov eax, dword [esp + 0x74]
mov dword [esp + 0x14], eax
mov eax, dword [esp + 0x78]
mov dword [esp + 0x18], eax
call fcn.00632290
mov ecx, dword [esp + 0x64]
mov eax, dword [esp + 0x3c]
cmp ecx, eax
jbe 0x614dc2
mov eax, dword [esp + 0x44]
mov ecx, dword [esp + 0x60]
inc dword [ecx + eax*4 - 0x10]
jmp 0x614cef
cmp edx, 0x48
jae 0x61487f
add edx, 0xfffffff8
nop
nop
cmp edx, 0x10000
jb 0x61472e
mov ebx, edx
shr edx, 0x10
mov eax, 0x10
jmp 0x614732
mov ebx, edx
xor eax, eax
cmp edx, 0x100
jb 0x614740
shr edx, 8
add eax, 8
cmp edx, 0x100
jae 0x614db6
mov dword [esp + 0x3c], ebx
lea ebp, [0x77ce7e]
movzx edx, byte [ebp + edx]
lea ecx, [eax + edx - 2]
cmp ecx, 0x20
sbb ebp, ebp
shr ebx, cl
and ebx, ebp
lea ebp, [ebx + ecx*2 + 4]
lea edi, [ebx + ecx*2]
mov esi, dword [esp + 0x4c]
cmp esi, ebp
jbe 0x614dad
mov esi, dword [esp + 0x48]
movzx esi, byte [edi + esi + 4]
mov edi, dword [esp + 0x58]
cmp edi, ebp
jbe 0x614da4
mov dword [esp + 0x24], ecx
mov dword [esp + 0x38], ebp
mov dword [esp + 0x34], esi
lea eax, [edx + eax - 0x22]
cmp eax, 0x20
sbb edx, edx
mov edi, eax
neg eax
cmp eax, 0x20
sbb esi, esi
cmp ecx, 0x20
sbb ebp, ebp
mov ecx, edi
mov edi, ebx
shl ebx, cl
and ebx, edx
mov ecx, eax
mov eax, edi
shr edi, cl
and edi, esi
mov ecx, dword [esp + 0x24]
shl eax, cl
and eax, ebp
or ebx, edi
mov edx, dword [esp + 0x3c]
sub edx, eax
mov dword [esp + 0x30], edx
mov eax, 0
sbb eax, ebx
mov dword [esp + 0x2c], eax
mov ebx, dword [esp + 0x38]
mov ebp, dword [esp + 0x54]
movzx ebp, word [ebp + ebx*2]
mov esi, dword [esp + 0x34]
mov dword [esp], esi
mov dword [esp + 8], 0
mov dword [esp + 4], ebp
mov ebp, dword [esp + 0x6c]
mov dword [esp + 0xc], ebp
mov esi, dword [esp + 0x70]
mov dword [esp + 0x10], esi
mov edi, dword [esp + 0x74]
mov dword [esp + 0x14], edi
mov ebx, dword [esp + 0x78]
mov dword [esp + 0x18], ebx
call fcn.00632290
mov eax, dword [esp + 0x24]
mov dword [esp], eax
mov eax, dword [esp + 0x2c]
mov dword [esp + 8], eax
mov eax, dword [esp + 0x30]
mov dword [esp + 4], eax
mov eax, dword [esp + 0x6c]
mov dword [esp + 0xc], eax
mov eax, dword [esp + 0x70]
mov dword [esp + 0x10], eax
mov eax, dword [esp + 0x74]
mov dword [esp + 0x14], eax
mov eax, dword [esp + 0x78]
mov dword [esp + 0x18], eax
call fcn.00632290
mov ecx, dword [esp + 0x64]
mov eax, dword [esp + 0x38]
cmp ecx, eax
jbe 0x614d9f
mov ecx, dword [esp + 0x60]
inc dword [ecx + eax*4]
jmp 0x614cef
cmp edx, 0x88
jae 0x6149d0
add edx, 0xfffffff8
mov ebx, edx
shr edx, 5
lea eax, [edx + 0x1e]
mov ecx, dword [esp + 0x4c]
cmp ecx, eax
jbe 0x614d9a
mov ebp, dword [esp + 0x48]
movzx esi, byte [edx + ebp + 0x1e]
mov edi, dword [esp + 0x58]
cmp edi, eax
jbe 0x614d93
mov dword [esp + 0x3c], ebx
mov dword [esp + 0x34], edx
mov dword [esp + 0x20], eax
mov eax, dword [esp + 0x54]
movzx ecx, word [eax + edx*2 + 0x3c]
mov dword [esp], esi
mov dword [esp + 8], 0
mov dword [esp + 4], ecx
mov ecx, dword [esp + 0x6c]
mov dword [esp + 0xc], ecx
mov ebx, dword [esp + 0x70]
mov dword [esp + 0x10], ebx
mov ebp, dword [esp + 0x74]
mov dword [esp + 0x14], ebp
mov esi, dword [esp + 0x78]
mov dword [esp + 0x18], esi
call fcn.00632290
mov dword [esp], 5
mov dword [esp + 8], 0
mov eax, dword [esp + 0x3c]
and eax, 0x1f
mov dword [esp + 4], eax
mov eax, dword [esp + 0x6c]
mov dword [esp + 0xc], eax
mov ecx, dword [esp + 0x70]
mov dword [esp + 0x10], ecx
mov edx, dword [esp + 0x74]
mov dword [esp + 0x14], edx
mov ebx, dword [esp + 0x78]
mov dword [esp + 0x18], ebx
call fcn.00632290
mov ecx, dword [esp + 0x4c]
cmp ecx, 0x40
jbe 0x614d89
mov edx, dword [esp + 0x48]
movzx edx, byte [edx + 0x40]
mov ecx, dword [esp + 0x58]
cmp ecx, 0x40
jbe 0x614d7f
mov eax, dword [esp + 0x54]
movzx eax, word [eax + 0x80]
mov dword [esp], edx
mov dword [esp + 8], 0
mov dword [esp + 4], eax
mov eax, dword [esp + 0x6c]
mov dword [esp + 0xc], eax
mov eax, dword [esp + 0x70]
mov dword [esp + 0x10], eax
mov eax, dword [esp + 0x74]
mov dword [esp + 0x14], eax
mov eax, dword [esp + 0x78]
mov dword [esp + 0x18], eax
call fcn.00632290
mov ecx, dword [esp + 0x64]
mov eax, dword [esp + 0x20]
cmp ecx, eax
jbe 0x614d7a
mov edx, dword [esp + 0x34]
mov ebx, dword [esp + 0x60]
inc dword [ebx + edx*4 + 0x78]
cmp ecx, 0x40
jbe 0x614d70
inc dword [ebx + 0x100]
jmp 0x614cef
cmp edx, 0x848
jae 0x614bc4
add edx, 0xffffffb8
nop
nop
cmp edx, 0x10000
jb 0x6149f5
mov ebx, edx
shr edx, 0x10
mov eax, 0x10
jmp 0x6149f9
mov ebx, edx
xor eax, eax
cmp edx, 0x100
jb 0x614a07
shr edx, 8
add eax, 8
cmp edx, 0x100
jae 0x614d64
lea ebp, [0x77ce7e]
movzx edx, byte [ebp + edx]
lea ebp, [eax + edx + 0x1b]
lea esi, [eax + edx - 1]
lea edi, [eax + edx]
mov ecx, dword [esp + 0x4c]
cmp ecx, ebp
jbe 0x614d5d
mov dword [esp + 0x3c], ebx
mov ebx, dword [esp + 0x48]
movzx edi, byte [edi + ebx + 0x1b]
mov ebx, dword [esp + 0x58]
cmp ebx, ebp
jbe 0x614d54
mov dword [esp + 0x34], edi
mov dword [esp + 0x1c], esi
mov dword [esp + 0x38], ebp
lea ecx, [edx + eax - 0x21]
mov eax, ecx
neg ecx
mov dword [esp + 0x30], ecx
cmp ecx, 0x20
sbb edx, edx
cmp eax, 0x20
sbb ebx, ebx
mov dword [esp + 0x28], ebx
cmp esi, 0x20
sbb edi, edi
mov ecx, eax
mov ebp, 1
shl ebp, cl
mov ecx, dword [esp + 0x30]
mov eax, 1
shr eax, cl
mov ecx, esi
mov ebx, 1
shl ebx, cl
and ebx, edi
and eax, edx
mov edx, dword [esp + 0x28]
and edx, ebp
or edx, eax
mov eax, dword [esp + 0x3c]
sub eax, ebx
mov dword [esp + 0x30], eax
mov ebx, 0
sbb ebx, edx
mov dword [esp + 0x2c], ebx
mov edx, dword [esp + 0x38]
mov ebp, dword [esp + 0x54]
movzx edi, word [ebp + edx*2]
mov edx, dword [esp + 0x34]
mov dword [esp], edx
mov dword [esp + 8], 0
mov dword [esp + 4], edi
mov edx, dword [esp + 0x6c]
mov dword [esp + 0xc], edx
mov edi, dword [esp + 0x70]
mov dword [esp + 0x10], edi
mov ebp, dword [esp + 0x74]
mov dword [esp + 0x14], ebp
mov ebp, dword [esp + 0x78]
mov dword [esp + 0x18], ebp
call fcn.00632290
mov eax, dword [esp + 0x1c]
mov dword [esp], eax
mov eax, dword [esp + 0x2c]
mov dword [esp + 8], eax
mov eax, dword [esp + 0x30]
mov dword [esp + 4], eax
mov eax, dword [esp + 0x6c]
mov dword [esp + 0xc], eax
mov edx, dword [esp + 0x70]
mov dword [esp + 0x10], edx
mov ebx, dword [esp + 0x74]
mov dword [esp + 0x14], ebx
mov ebp, dword [esp + 0x78]
mov dword [esp + 0x18], ebp
call fcn.00632290
mov ecx, dword [esp + 0x4c]
cmp ecx, 0x40
jbe 0x614d4a
mov edx, dword [esp + 0x48]
movzx edx, byte [edx + 0x40]
mov ecx, dword [esp + 0x58]
cmp ecx, 0x40
jbe 0x614d40
mov eax, dword [esp + 0x54]
movzx eax, word [eax + 0x80]
mov dword [esp], edx
mov dword [esp + 8], 0
mov dword [esp + 4], eax
mov eax, dword [esp + 0x6c]
mov dword [esp + 0xc], eax
mov eax, dword [esp + 0x70]
mov dword [esp + 0x10], eax
mov eax, dword [esp + 0x74]
mov dword [esp + 0x14], eax
mov eax, dword [esp + 0x78]
mov dword [esp + 0x18], eax
call fcn.00632290
mov ecx, dword [esp + 0x64]
mov eax, dword [esp + 0x38]
cmp ecx, eax
jbe 0x614d3b
mov edx, dword [esp + 0x60]
inc dword [edx + eax*4]
cmp ecx, 0x40
jbe 0x614d31
inc dword [edx + 0x100]
jmp 0x614cef
mov ecx, dword [esp + 0x4c]
cmp ecx, 0x27
jbe 0x614d27
mov ebx, dword [esp + 0x48]
movzx ebp, byte [ebx + 0x27]
mov esi, dword [esp + 0x58]
cmp esi, 0x27
jbe 0x614d1b
add edx, 0xfffff7b8
mov dword [esp + 0x38], edx
mov eax, 0xffffffff
adc eax, 0
mov dword [esp + 0x2c], eax
mov ecx, dword [esp + 0x54]
movzx ebx, word [ecx + 0x4e]
mov dword [esp], ebp
mov dword [esp + 8], 0
mov dword [esp + 4], ebx
mov ebx, dword [esp + 0x6c]
mov dword [esp + 0xc], ebx
mov ebp, dword [esp + 0x70]
mov dword [esp + 0x10], ebp
mov esi, dword [esp + 0x74]
mov dword [esp + 0x14], esi
mov edi, dword [esp + 0x78]
mov dword [esp + 0x18], edi
call fcn.00632290
mov dword [esp], 0x18
mov eax, dword [esp + 0x2c]
mov dword [esp + 8], eax
mov eax, dword [esp + 0x38]
mov dword [esp + 4], eax
mov eax, dword [esp + 0x6c]
mov dword [esp + 0xc], eax
mov ecx, dword [esp + 0x70]
mov dword [esp + 0x10], ecx
mov edx, dword [esp + 0x74]
mov dword [esp + 0x14], edx
mov ebx, dword [esp + 0x78]
mov dword [esp + 0x18], ebx
call fcn.00632290
mov ecx, dword [esp + 0x4c]
cmp ecx, 0x40
jbe 0x614d11
mov edx, dword [esp + 0x48]
movzx edx, byte [edx + 0x40]
mov ecx, dword [esp + 0x58]
cmp ecx, 0x40
jbe 0x614d07
mov eax, dword [esp + 0x54]
movzx eax, word [eax + 0x80]
mov dword [esp], edx
mov dword [esp + 8], 0
mov dword [esp + 4], eax
mov eax, dword [esp + 0x6c]
mov dword [esp + 0xc], eax
mov eax, dword [esp + 0x70]
mov dword [esp + 0x10], eax
mov eax, dword [esp + 0x74]
mov dword [esp + 0x14], eax
mov eax, dword [esp + 0x78]
mov dword [esp + 0x18], eax
call fcn.00632290
mov ecx, dword [esp + 0x64]
cmp ecx, 0x27
jbe 0x614cfd
mov edx, dword [esp + 0x60]
inc dword [edx + 0x9c]
cmp ecx, 0x40
jbe 0x614cf3
inc dword [edx + 0x100]
add esp, 0x40
ret
mov eax, 0x40
call fcn.00456b40
mov eax, 0x27
call fcn.00456b40
mov eax, 0x40
call fcn.00456b40
mov eax, 0x40
call fcn.00456b40
mov eax, 0x27
mov ecx, esi
call fcn.00456b40
mov eax, 0x27
call fcn.00456b40
mov eax, 0x40
call fcn.00456b40
call fcn.00456b50
mov eax, 0x40
call fcn.00456b40
mov eax, 0x40
call fcn.00456b40
mov eax, ebp
mov ecx, ebx
call fcn.00456b50
mov eax, ebp
call fcn.00456b50
mov eax, edx
mov ecx, 0x100
call fcn.00456b50
mov eax, 0x40
call fcn.00456b40
call fcn.00456b50
mov eax, 0x40
call fcn.00456b40
mov eax, 0x40
call fcn.00456b40
mov ecx, edi
call fcn.00456b50
call fcn.00456b50
call fcn.00456b50
mov eax, ebp
mov ecx, edi
call fcn.00456b50
mov eax, ebp
mov ecx, esi
call fcn.00456b50
mov eax, edx
mov ecx, 0x100
call fcn.00456b50
call fcn.00456b50
call fcn.00456b50
call fcn.00456b50
nop
call fcn.00455690
jmp fcn.00614660