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

Disassembly:
mov ecx, dword fs:[0x14]
mov ecx, dword [ecx]
mov eax, esp
sub eax, 0x3ff8
jb 0x6460d5
cmp eax, dword [ecx + 8]
jbe 0x6460d5
sub esp, 0x4078
lea edi, [esp + 0x78]
mov ecx, 0x1000
xor eax, eax
rep stosd dword es:[edi], eax
movzx ebx, word [esp + 0x408c]
movsx ebp, bx
mov ecx, dword [esp + 0x4084]
mov esi, ecx
sub ecx, ebp
cmp ecx, 0xd
jl 0x6458f2
test bx, bx
jle 0x645909
nop
nop
cmp esi, 3
jbe 0x6460c8
mov ebp, dword [esp + 0x4080]
mov edi, dword [ebp]
xor eax, eax
jmp 0x64609c
mov eax, dword [esp + 0x407c]
mov word [eax + 0x284], 0
add esp, 0x4078
ret
lea ebp, [ebx + 1]
nop
movsx eax, bp
cmp esi, eax
jb 0x646085
mov edx, dword [esp + 0x4088]
mov edi, edx
sub edx, eax
mov ecx, edx
neg edx
sar edx, 0x1f
and eax, edx
cmp ecx, 4
jb 0x646079
mov ecx, edi
lea edi, [esi - 0xb]
mov dword [esp + 0x6c], edi
mov edx, esi
mov esi, dword [esp + 0x4080]
mov esi, dword [esi + eax]
jmp 0x645973
mov esi, dword [esp + 0x68]
shl esi, 8
mov ecx, dword [esp + 0x64]
shr ecx, 0x18
or esi, ecx
lea ebp, [edi + 1]
mov ecx, dword [esp + 0x4088]
mov edx, dword [esp + 0x4084]
mov edi, dword [esp + 0x6c]
mov ebx, eax
mov word [esp + 0x24], bx
mov eax, dword [esp + 0x4080]
jmp 0x6459cf
mov edi, dword [esp + 0x48]
mov word [esp + edi*2 + 0x78], bx
movzx ebp, word [esp + 0x2e]
jmp 0x6459a2
mov word [esp + edi*2 + 0x78], cx
movzx ebp, word [esp + 0x2c]
mov ebx, ecx
movzx ecx, word [esp + 0x2a]
mov word [esp + 0x22], bx
mov esi, dword [esp + 0x4088]
movzx edi, word [esp + 0x24]
jmp 0x645c52
mov ecx, dword [esp + 0x4088]
movzx ebp, word [esp + 0x24]
mov edi, dword [esp + 0x6c]
mov ebp, ebx
movzx ebx, word [esp + 0x24]
mov word [esp + 0x2a], bp
mov dword [esp + 0x4c], esi
imul esi, esi, 0x1e35a7bd
shr esi, 0x13
mov dword [esp + 0x30], esi
movzx esi, word [esp + esi*2 + 0x78]
sub ebp, ebx
sar bp, 5
mov word [esp + 0x2e], bp
movzx ebx, word [esp + 0x2a]
lea ebp, [ebx + ebp + 2]
cmp bp, di
jg 0x645b9f
test bp, bp
jle 0x645b9f
nop
movsx edi, bp
cmp edx, edi
jb 0x646070
sub ecx, edi
mov dword [esp + 0x44], ecx
neg ecx
sar ecx, 0x1f
and edi, ecx
mov ecx, ebp
mov ebp, dword [esp + 0x44]
cmp ebp, 8
jb 0x646064
mov word [esp + 0x2c], si
movzx ebp, byte [eax + edi]
mov dword [esp + 0x68], ebp
movzx esi, byte [eax + edi + 1]
movzx ebp, byte [eax + edi + 2]
mov dword [esp + 0x64], ebp
movzx ebp, byte [eax + edi + 3]
mov dword [esp + 0x60], ebp
movzx ebp, byte [eax + edi + 4]
mov dword [esp + 0x5c], ebp
movzx ebp, byte [eax + edi + 5]
mov dword [esp + 0x58], ebp
movzx ebp, byte [eax + edi + 6]
movzx edi, byte [eax + edi + 7]
mov dword [esp + 0x54], edi
mov edi, dword [esp + 0x30]
mov word [esp + edi*2 + 0x78], bx
nop
nop
mov edi, esi
shl esi, 8
mov ebx, dword [esp + 0x68]
or ebx, esi
shr edi, 0x18
mov esi, dword [esp + 0x64]
shl esi, 0x10
or ebx, esi
mov esi, dword [esp + 0x64]
shr esi, 0x10
or edi, esi
mov esi, dword [esp + 0x60]
shl esi, 0x18
or esi, ebx
mov ebx, dword [esp + 0x60]
shr ebx, 8
or edi, ebx
mov ebx, dword [esp + 0x5c]
or ebx, edi
mov edi, dword [esp + 0x58]
shl edi, 8
or ebx, edi
shl ebp, 0x10
or ebx, ebp
mov ebp, dword [esp + 0x54]
shl ebp, 0x18
or ebx, ebp
movzx ebp, word [esp + 0x2c]
movsx edi, bp
cmp edx, edi
jb 0x64605b
mov ebp, dword [esp + 0x4088]
sub ebp, edi
mov dword [esp + 0x40], ebp
xchg ebp, ebx
neg ebx
xchg ebp, ebx
sar ebp, 0x1f
and edi, ebp
lea ebp, [edi + eax]
mov edi, dword [esp + 0x40]
cmp edi, 4
jb 0x64604f
mov dword [esp + 0x68], ebx
imul edi, esi, 0x1e35a7bd
shr edi, 0x13
mov ebx, dword [esp + 0x4c]
cmp dword [ebp], ebx
je 0x645991
movzx ebx, word [esp + 0x2e]
movzx ebp, word [esp + 0x2a]
lea ebx, [ebp + ebx + 3]
mov dword [esp + 0x48], edi
mov dword [esp + 0x64], esi
movzx ebp, word [esp + edi*2 + 0x78]
mov word [esp + edi*2 + 0x78], cx
shr esi, 8
mov edi, dword [esp + 0x68]
shl edi, 0x18
or esi, edi
nop
movsx edi, bp
cmp edx, edi
jb 0x646046
mov word [esp + 0x2e], bp
mov ebp, dword [esp + 0x4088]
sub ebp, edi
mov dword [esp + 0x3c], ebp
xchg ebp, ebx
neg ebx
xchg ebp, ebx
sar ebp, 0x1f
and edi, ebp
lea ebp, [edi + eax]
mov edi, dword [esp + 0x3c]
cmp edi, 4
jb 0x64603a
mov edi, dword [esp + 0x64]
cmp dword [ebp], edi
jne 0x6459b8
jmp 0x645981
movzx ebx, word [esp + 0x24]
movsx ebx, bx
cmp edx, ebx
jle 0x645bda
mov ebp, dword [esp + 0x407c]
movzx esi, word [ebp + 0x284]
test si, si
je 0x645bd3
cmp edx, ebx
jb 0x645c20
sub edx, ebx
sub ecx, ebx
neg ecx
sar ecx, 0x1f
and ebx, ecx
add eax, ebx
xor ecx, ecx
jmp 0x645c1a
add esp, 0x4078
ret
add esp, 0x4078
ret
movzx ebx, byte [ecx + eax]
movzx esi, word [ebp + 0x284]
movzx edi, bl
mov dword [ebp + esi*4 + 0x288], edi
movzx ebx, bl
movzx esi, word [ebp + ebx*2 + 0x80]
inc esi
mov word [ebp + ebx*2 + 0x80], si
movzx ebx, word [ebp + 0x284]
inc ebx
mov word [ebp + 0x284], bx
inc ecx
cmp ecx, edx
jl 0x645be1
jmp 0x645bda
mov eax, ebx
mov ecx, edx
call fcn.00456ba0
mov esi, dword [esp + 0x4088]
mov ebx, dword [esp + 0x4084]
mov ebp, dword [esp + 0x4080]
mov edx, ebx
mov ebx, ecx
movzx ebp, word [esp + 0x2e]
mov ecx, edi
mov edi, eax
mov eax, dword [esp + 0x4080]
lea ebx, [ecx + 4]
movsx ebx, bx
cmp edx, ebx
jb 0x646031
mov word [esp + 0x24], di
sub esi, ebx
mov dword [esp + 0x50], esi
sub edx, ebx
xchg esi, ebx
neg ebx
xchg esi, ebx
sar esi, 0x1f
and ebx, esi
add ebx, eax
lea esi, [ebp + 4]
movsx esi, si
mov edi, dword [esp + 0x4084]
cmp edi, esi
jb 0x646028
mov word [esp + 0x28], bp
mov word [esp + 0x2a], cx
mov dword [esp], ebx
mov dword [esp + 4], edx
mov ecx, dword [esp + 0x50]
mov dword [esp + 8], ecx
mov ecx, dword [esp + 0x4088]
sub ecx, esi
mov ebx, ecx
neg ecx
sar ecx, 0x1f
and ecx, esi
add ecx, eax
mov dword [esp + 0xc], ecx
sub edi, esi
mov dword [esp + 0x10], edi
mov dword [esp + 0x14], ebx
call fcn.00636bd0
mov eax, dword [esp + 0x18]
add eax, 4
movzx ecx, word [esp + 0x24]
mov edx, dword [esp + 0x4084]
mov ebx, dword [esp + 0x4080]
movzx ebp, word [esp + 0x2a]
movzx esi, word [esp + 0x28]
jmp 0x645f03
movzx ebp, word [esp + 0x2a]
movzx esi, word [esp + 0x20]
cmp cx, bp
jge 0x645d53
movsx edi, bp
mov ebp, dword [esp + 0x4088]
cmp ebp, edi
jb 0x64600d
movsx edx, cx
cmp edx, edi
ja 0x646004
sub edi, edx
mov ecx, ebp
sub ebp, edx
xchg ebp, ebx
neg ebx
xchg ebp, ebx
sar ebp, 0x1f
and edx, ebp
add edx, ebx
mov ebp, dword [esp + 0x407c]
mov word [esp + 0x70], ax
xor eax, eax
mov dword [esp + 0x50], eax
movzx eax, word [esp + 0x70]
jmp 0x645ff2
mov ecx, dword [esp + 0x407c]
mov dword [esp], ecx
movsx edx, ax
mov dword [esp + 4], edx
sub ebp, esi
lea ebx, [ebp - 1]
movsx ebx, bx
mov dword [esp + 8], ebx
call fcn.00646520
movzx eax, word [esp + 0x26]
movzx ecx, word [esp + 0x2a]
add eax, ecx
movzx ecx, word [esp + 0x22]
cmp cx, ax
jl 0x645d90
lea ebx, [ecx + 1]
jmp 0x645d92
mov ebx, eax
mov ebp, dword [esp + 0x6c]
cmp bx, bp
jge 0x645f55
lea esi, [ebx - 2]
movsx edi, si
mov ebp, dword [esp + 0x4084]
cmp ebp, edi
jb 0x645f92
mov ebp, dword [esp + 0x4088]
sub ebp, edi
mov dword [esp + 0x38], ebp
xchg ebp, ebx
neg ebx
xchg ebp, ebx
sar ebp, 0x1f
and edi, ebp
mov ebp, dword [esp + 0x38]
cmp ebp, 8
jb 0x645f86
mov word [esp + 0x2a], bx
mov word [esp + 0x1e], si
nop
mov ebp, dword [esp + 0x4080]
movzx ebx, byte [ebp + edi]
movzx esi, byte [ebp + edi + 1]
mov dword [esp + 0x68], esi
shl esi, 8
or ebx, esi
mov esi, dword [esp + 0x68]
shr esi, 0x18
movzx ebp, byte [ebp + edi + 2]
mov dword [esp + 0x68], ebp
shl ebp, 0x10
or ebx, ebp
mov ebp, dword [esp + 0x68]
shr ebp, 0x10
or ebp, esi
mov esi, dword [esp + 0x4080]
movzx esi, byte [esi + edi + 3]
mov dword [esp + 0x68], esi
shl esi, 0x18
or esi, ebx
mov dword [esp + 0x64], esi
mov ebx, dword [esp + 0x68]
shr ebx, 8
or ebx, ebp
mov ebp, dword [esp + 0x4080]
movzx esi, byte [ebp + edi + 4]
or esi, ebx
movzx ebx, byte [ebp + edi + 5]
shl ebx, 8
or esi, ebx
movzx ebx, byte [ebp + edi + 6]
shl ebx, 0x10
or esi, ebx
movzx ebx, byte [ebp + edi + 7]
shl ebx, 0x18
or ebx, esi
mov esi, dword [esp + 0x64]
imul edi, esi, 0x1e35a7bd
shr edi, 0x13
movzx ebp, word [esp + 0x1e]
mov word [esp + edi*2 + 0x78], bp
shr esi, 0x10
mov edi, ebx
shl ebx, 0x10
or esi, ebx
nop
mov dword [esp + 0x68], edi
imul ebx, esi, 0x1e35a7bd
shr ebx, 0x13
movzx ebp, word [esp + ebx*2 + 0x78]
mov word [esp + 0x2e], bp
movzx edi, word [esp + 0x2a]
mov word [esp + ebx*2 + 0x78], di
nop
movsx ebx, bp
mov ebp, dword [esp + 0x4084]
cmp ebp, ebx
jb 0x645f7d
mov ebp, dword [esp + 0x4088]
sub ebp, ebx
mov dword [esp + 0x34], ebp
xchg ebp, ebx
neg ebx
xchg ebp, ebx
sar ebp, 0x1f
and ebx, ebp
mov ebp, dword [esp + 0x4080]
add ebx, ebp
mov ebp, dword [esp + 0x34]
cmp ebp, 4
jb 0x645f71
cmp dword [ebx], esi
je 0x645c29
jmp 0x64594c
inc eax
movzx ebp, word [esp + 0x2e]
mov esi, edi
mov word [esp + 0x20], si
mov word [esp + 0x26], ax
mov word [esp + 0x2a], bp
test si, si
jle 0x645d02
cmp cx, bp
jge 0x645d53
lea edi, [esi - 1]
movsx esi, di
cmp edx, esi
jbe 0x64601f
movzx esi, byte [ebx + esi]
dec ebp
mov word [esp + 0x2e], bp
movsx ebp, bp
cmp edx, ebp
jbe 0x646016
add ebp, ebx
xchg esi, eax
cmp byte [ebp], al
xchg esi, eax
je 0x645efb
jmp 0x645cf8
mov ecx, dword [esp + 0x4088]
mov edx, dword [esp + 0x4084]
mov ebx, eax
mov eax, dword [esp + 0x4080]
jmp 0x645ba4
mov ecx, 4
mov edx, ebp
call fcn.00456b80
mov eax, ebx
mov ecx, ebp
call fcn.00456ba0
mov ecx, 8
mov edx, ebp
call fcn.00456b80
mov eax, edi
mov ecx, ebp
call fcn.00456ba0
movzx ecx, byte [ebx + edx]
movzx esi, word [ebp + 0x284]
movzx eax, cl
mov dword [ebp + esi*4 + 0x288], eax
movzx eax, cl
movzx ecx, word [ebp + eax*2 + 0x80]
inc ecx
mov word [ebp + eax*2 + 0x80], cx
movzx eax, word [ebp + 0x284]
inc eax
mov word [ebp + 0x284], ax
lea eax, [ebx + 1]
mov ecx, dword [esp + 0x4088]
mov ebx, dword [esp + 0x4080]
movzx esi, word [esp + 0x20]
mov dword [esp + 0x50], eax
movzx eax, word [esp + 0x26]
mov ebx, dword [esp + 0x50]
cmp ebx, edi
jl 0x645f9b
movzx ebp, word [esp + 0x2a]
jmp 0x645d53
mov eax, edx
mov ecx, edi
call fcn.00456ba0
mov ecx, edi
mov edx, ebp
call fcn.00456b80
mov eax, ebp
mov ecx, edx
call fcn.00456b40
mov eax, esi
mov ecx, edx
call fcn.00456b40
mov eax, esi
mov ecx, edi
call fcn.00456ba0
mov eax, ebx
mov ecx, edx
call fcn.00456ba0
mov ecx, 4
mov edx, edi
call fcn.00456b80
mov eax, edi
mov ecx, edx
call fcn.00456ba0
mov ecx, 4
mov edx, edi
call fcn.00456b80
mov eax, edi
mov ecx, edx
call fcn.00456ba0
mov ecx, 8
mov edx, ebp
call fcn.00456b80
mov eax, edi
mov ecx, edx
call fcn.00456ba0
mov edx, ecx
mov ecx, 4
call fcn.00456b80
mov ecx, esi
call fcn.00456ba0
inc eax
shr edi, 8
movzx edx, byte [ebp + ebx]
shl edx, 0x18
or edi, edx
mov ebx, ecx
cmp bx, ax
jle 0x645909
mov ecx, ebx
imul ebx, edi, 0x1e35a7bd
shr ebx, 0x13
mov word [esp + ebx*2 + 0x78], ax
lea ebx, [eax + 4]
movsx ebx, bx
cmp esi, ebx
ja 0x64608c
mov eax, ebx
mov ecx, esi
call fcn.00456b40
mov eax, 3
mov ecx, esi
call fcn.00456b40
nop
call fcn.00455690
jmp fcn.00645880