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

Disassembly:
mov ecx, dword fs:[0x14]
mov ecx, dword [ecx]
cmp esp, dword [ecx + 8]
jbe 0x614da2
sub esp, 0x40
mov edx, dword [esp + 0x44]
cmp edx, 0xc
jae 0x6146dc
lea eax, [edx - 4]
mov ecx, dword [esp + 0x4c]
cmp ecx, eax
jbe 0x614d9c
mov ebx, dword [esp + 0x48]
movzx ebx, byte [edx + ebx - 4]
mov ecx, dword [esp + 0x58]
cmp ecx, eax
jbe 0x614d97
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.006322d0
mov ecx, dword [esp + 0x64]
mov eax, dword [esp + 0x3c]
cmp ecx, eax
jbe 0x614d92
mov eax, dword [esp + 0x44]
mov ecx, dword [esp + 0x60]
inc dword [ecx + eax*4 - 0x10]
jmp 0x614cbf
cmp edx, 0x48
jae 0x61484f
add edx, 0xfffffff8
nop
nop
cmp edx, 0x10000
jb 0x6146fe
mov ebx, edx
shr edx, 0x10
mov eax, 0x10
jmp 0x614702
mov ebx, edx
xor eax, eax
cmp edx, 0x100
jb 0x614710
shr edx, 8
add eax, 8
cmp edx, 0x100
jae 0x614d86
mov dword [esp + 0x3c], ebx
lea ebp, [0x77cbde]
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 0x614d7d
mov esi, dword [esp + 0x48]
movzx esi, byte [edi + esi + 4]
mov edi, dword [esp + 0x58]
cmp edi, ebp
jbe 0x614d74
mov dword [esp + 0x20], 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 + 0x20]
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.006322d0
mov eax, dword [esp + 0x20]
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.006322d0
mov ecx, dword [esp + 0x64]
mov eax, dword [esp + 0x38]
cmp ecx, eax
jbe 0x614d6f
mov ecx, dword [esp + 0x60]
inc dword [ecx + eax*4]
jmp 0x614cbf
cmp edx, 0x88
jae 0x6149a0
add edx, 0xfffffff8
mov ebx, edx
shr edx, 5
lea eax, [edx + 0x1e]
mov ecx, dword [esp + 0x4c]
cmp ecx, eax
jbe 0x614d6a
mov ebp, dword [esp + 0x48]
movzx esi, byte [edx + ebp + 0x1e]
mov edi, dword [esp + 0x58]
cmp edi, eax
jbe 0x614d63
mov dword [esp + 0x3c], ebx
mov dword [esp + 0x34], edx
mov dword [esp + 0x24], 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.006322d0
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.006322d0
mov ecx, dword [esp + 0x4c]
cmp ecx, 0x40
jbe 0x614d59
mov edx, dword [esp + 0x48]
movzx edx, byte [edx + 0x40]
mov ecx, dword [esp + 0x58]
cmp ecx, 0x40
jbe 0x614d4f
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.006322d0
mov ecx, dword [esp + 0x64]
mov eax, dword [esp + 0x24]
cmp ecx, eax
jbe 0x614d4a
mov edx, dword [esp + 0x34]
mov ebx, dword [esp + 0x60]
inc dword [ebx + edx*4 + 0x78]
cmp ecx, 0x40
jbe 0x614d40
inc dword [ebx + 0x100]
jmp 0x614cbf
cmp edx, 0x848
jae 0x614b94
add edx, 0xffffffb8
nop
nop
cmp edx, 0x10000
jb 0x6149c5
mov ebx, edx
shr edx, 0x10
mov eax, 0x10
jmp 0x6149c9
mov ebx, edx
xor eax, eax
cmp edx, 0x100
jb 0x6149d7
shr edx, 8
add eax, 8
cmp edx, 0x100
jae 0x614d34
lea ebp, [0x77cbde]
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 0x614d2d
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 0x614d24
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.006322d0
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.006322d0
mov ecx, dword [esp + 0x4c]
cmp ecx, 0x40
jbe 0x614d1a
mov edx, dword [esp + 0x48]
movzx edx, byte [edx + 0x40]
mov ecx, dword [esp + 0x58]
cmp ecx, 0x40
jbe 0x614d10
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.006322d0
mov ecx, dword [esp + 0x64]
mov eax, dword [esp + 0x38]
cmp ecx, eax
jbe 0x614d0b
mov edx, dword [esp + 0x60]
inc dword [edx + eax*4]
cmp ecx, 0x40
jbe 0x614d01
inc dword [edx + 0x100]
jmp 0x614cbf
mov ecx, dword [esp + 0x4c]
cmp ecx, 0x27
jbe 0x614cf7
mov ebx, dword [esp + 0x48]
movzx ebp, byte [ebx + 0x27]
mov esi, dword [esp + 0x58]
cmp esi, 0x27
jbe 0x614ceb
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.006322d0
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.006322d0
mov ecx, dword [esp + 0x4c]
cmp ecx, 0x40
jbe 0x614ce1
mov edx, dword [esp + 0x48]
movzx edx, byte [edx + 0x40]
mov ecx, dword [esp + 0x58]
cmp ecx, 0x40
jbe 0x614cd7
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.006322d0
mov ecx, dword [esp + 0x64]
cmp ecx, 0x27
jbe 0x614ccd
mov edx, dword [esp + 0x60]
inc dword [edx + 0x9c]
cmp ecx, 0x40
jbe 0x614cc3
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.00614630