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

Disassembly:
mov ecx, dword fs:[0x14]
mov ecx, dword [ecx]
mov eax, esp
sub eax, 0x3ff8
jb 0x646095
cmp eax, dword [ecx + 8]
jbe 0x646095
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 0x6458b2
test bx, bx
jle 0x6458c9
nop
nop
cmp esi, 3
jbe 0x646088
mov ebp, dword [esp + 0x4080]
mov edi, dword [ebp]
xor eax, eax
jmp 0x64605c
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 0x646045
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 0x646039
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 0x645933
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 + 0x2a], bx
mov eax, dword [esp + 0x4080]
jmp 0x64598f
mov edi, dword [esp + 0x34]
mov word [esp + edi*2 + 0x78], bx
movzx ebp, word [esp + 0x2e]
jmp 0x645962
mov word [esp + edi*2 + 0x78], cx
movzx ebp, word [esp + 0x2c]
mov ebx, ecx
movzx ecx, word [esp + 0x1e]
mov word [esp + 0x28], bx
mov esi, dword [esp + 0x4088]
movzx edi, word [esp + 0x2a]
jmp 0x645c12
mov ecx, dword [esp + 0x4088]
movzx ebp, word [esp + 0x2a]
mov edi, dword [esp + 0x6c]
mov ebp, ebx
movzx ebx, word [esp + 0x2a]
mov word [esp + 0x1e], 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 + 0x1e]
lea ebp, [ebx + ebp + 2]
cmp bp, di
jg 0x645b5f
test bp, bp
jle 0x645b5f
nop
movsx edi, bp
cmp edx, edi
jb 0x646030
sub ecx, edi
mov dword [esp + 0x48], ecx
neg ecx
sar ecx, 0x1f
and edi, ecx
mov ecx, ebp
mov ebp, dword [esp + 0x48]
cmp ebp, 8
jb 0x646024
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 0x64601b
mov ebp, dword [esp + 0x4088]
sub ebp, edi
mov dword [esp + 0x44], ebp
xchg ebp, ebx
neg ebx
xchg ebp, ebx
sar ebp, 0x1f
and edi, ebp
lea ebp, [edi + eax]
mov edi, dword [esp + 0x44]
cmp edi, 4
jb 0x64600f
mov dword [esp + 0x68], ebx
imul edi, esi, 0x1e35a7bd
shr edi, 0x13
mov ebx, dword [esp + 0x4c]
cmp dword [ebp], ebx
je 0x645951
movzx ebx, word [esp + 0x2e]
movzx ebp, word [esp + 0x1e]
lea ebx, [ebp + ebx + 3]
mov dword [esp + 0x34], 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 0x646006
mov word [esp + 0x2e], bp
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 0x645ffa
mov edi, dword [esp + 0x64]
cmp dword [ebp], edi
jne 0x645978
jmp 0x645941
movzx ebx, word [esp + 0x2a]
movsx ebx, bx
cmp edx, ebx
jle 0x645b9a
mov ebp, dword [esp + 0x407c]
movzx esi, word [ebp + 0x284]
test si, si
je 0x645b93
cmp edx, ebx
jb 0x645be0
sub edx, ebx
sub ecx, ebx
neg ecx
sar ecx, 0x1f
and ebx, ecx
add eax, ebx
xor ecx, ecx
jmp 0x645bda
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 0x645ba1
jmp 0x645b9a
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 0x645ff1
mov word [esp + 0x2a], 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 0x645fe8
mov word [esp + 0x20], bp
mov word [esp + 0x1e], 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.00636b90
mov eax, dword [esp + 0x18]
add eax, 4
movzx ecx, word [esp + 0x2a]
mov edx, dword [esp + 0x4084]
mov ebx, dword [esp + 0x4080]
movzx ebp, word [esp + 0x1e]
movzx esi, word [esp + 0x20]
jmp 0x645ec3
movzx ebp, word [esp + 0x1e]
movzx esi, word [esp + 0x24]
cmp cx, bp
jge 0x645d13
movsx edi, bp
mov ebp, dword [esp + 0x4088]
cmp ebp, edi
jb 0x645fcd
movsx edx, cx
cmp edx, edi
ja 0x645fc4
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 0x645fb2
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.006464e0
movzx eax, word [esp + 0x26]
movzx ecx, word [esp + 0x1e]
add eax, ecx
movzx ecx, word [esp + 0x28]
cmp cx, ax
jl 0x645d50
lea ebx, [ecx + 1]
jmp 0x645d52
mov ebx, eax
mov ebp, dword [esp + 0x6c]
cmp bx, bp
jge 0x645f15
lea esi, [ebx - 2]
movsx edi, si
mov ebp, dword [esp + 0x4084]
cmp ebp, edi
jb 0x645f52
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
mov ebp, dword [esp + 0x3c]
cmp ebp, 8
jb 0x645f46
mov word [esp + 0x1e], bx
mov word [esp + 0x22], 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 + 0x22]
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 + 0x1e]
mov word [esp + ebx*2 + 0x78], di
nop
movsx ebx, bp
mov ebp, dword [esp + 0x4084]
cmp ebp, ebx
jb 0x645f3d
mov ebp, dword [esp + 0x4088]
sub ebp, ebx
mov dword [esp + 0x38], 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 + 0x38]
cmp ebp, 4
jb 0x645f31
cmp dword [ebx], esi
je 0x645be9
jmp 0x64590c
inc eax
movzx ebp, word [esp + 0x2e]
mov esi, edi
mov word [esp + 0x24], si
mov word [esp + 0x26], ax
mov word [esp + 0x1e], bp
test si, si
jle 0x645cc2
cmp cx, bp
jge 0x645d13
lea edi, [esi - 1]
movsx esi, di
cmp edx, esi
jbe 0x645fdf
movzx esi, byte [ebx + esi]
dec ebp
mov word [esp + 0x2e], bp
movsx ebp, bp
cmp edx, ebp
jbe 0x645fd6
add ebp, ebx
xchg esi, eax
cmp byte [ebp], al
xchg esi, eax
je 0x645ebb
jmp 0x645cb8
mov ecx, dword [esp + 0x4088]
mov edx, dword [esp + 0x4084]
mov ebx, eax
mov eax, dword [esp + 0x4080]
jmp 0x645b64
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 + 0x24]
mov dword [esp + 0x50], eax
movzx eax, word [esp + 0x26]
mov ebx, dword [esp + 0x50]
cmp ebx, edi
jl 0x645f5b
movzx ebp, word [esp + 0x1e]
jmp 0x645d13
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 0x6458c9
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 0x64604c
mov eax, ebx
mov ecx, esi
call fcn.00456b40
mov eax, 3
mov ecx, esi
call fcn.00456b40
nop
call fcn.00455690
jmp fcn.00645840