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

Disassembly:
push esi
push edi
push ebx
push ebp
sub esp, 0x88
mov ebx, ecx
mov esi, dword [esp + 0x9c]
mov ebp, dword [esp + 0xa4]
jmp 0x45ac85
mov edx, edi
mov edi, edx
lea ecx, [esi + edx]
shr ecx, 1
mov eax, esi
mov ecx, dword [ebx + ecx*4]
cmp edx, esi
ja 0x45b350
mov dword [esp + 0x2c], ecx
mov dword [esp + 0x50], eax
mov dword [esp + 0x78], edi
mov dword [esp + 0x7c], ebx
mov dword [esp + 4], edx
mov eax, dword [esp + 0x7c]
mov edx, dword [esp + 0x78]
mov ebx, dword [esp + 0xa0]
mov ecx, dword [eax + edx*4]
mov dword [esp + 0x74], ecx
mov edi, dword [ecx + ebx]
test edi, edi
je 0x45b61e
movsx eax, byte [edi]
cmp eax, 0x20
jne 0x45acdf
inc edi
movsx eax, byte [edi]
cmp eax, 0x20
je 0x45acd6
cmp eax, 0x2d
jne 0x45acfb
inc edi
movsx eax, byte [edi]
lea edx, [eax - 0x30]
cmp edx, 9
ja 0x45b5b6
mov esi, 1
jmp 0x45ad12
cmp eax, 0x2b
jne 0x45ad04
inc edi
movsx eax, byte [edi]
lea edx, [eax - 0x30]
cmp edx, 9
ja 0x45b61e
xor esi, esi
xor edx, edx
xor ecx, ecx
mov dword [esp + 0x20], edx
xor ebx, ebx
mov dword [esp + 8], esi
xor ebp, ebp
mov dword [esp + 0xc], ebx
mov esi, edx
inc edi
lea esi, [esi + esi*4]
lea esi, [eax + esi*2 - 0x30]
test esi, esi
jle 0x45b611
inc ecx
cmp ecx, 8
jg 0x45b5bf
movsx eax, byte [edi]
lea edx, [eax - 0x30]
cmp edx, 9
jbe 0x45ad28
mov dword [esp + 0x20], esi
mov ebx, dword [esp + 0xc]
mov esi, dword [esp + 8]
test ecx, ecx
jle 0x45ad8b
mov eax, dword [esp + 0x20]
cdq
mov eax, dword [esp + 0xa4]
mov edi, edx
mov eax, dword [eax + ecx*4]
cdq
push edx
mov eax, dword [esp + 0xa8]
push dword [eax + ecx*4]
push ebp
push ebx
call fcn.0045b634
mov ebx, eax
mov ebp, edx
add ebx, dword [esp + 0x20]
adc ebp, edi
test esi, esi
je 0x45ad9d
xor edx, edx
mov eax, ebx
xor ebx, ebx
mov ecx, ebp
xor ebp, ebp
sub ebx, eax
sbb ebp, ecx
mov eax, dword [esp + 0x2c]
mov edx, dword [esp + 0xa0]
mov edx, dword [eax + edx]
mov dword [esp + 0x84], edx
mov dword [esp + 0x80], edx
test edx, edx
je 0x45b5ad
mov eax, dword [esp + 0x84]
movsx eax, byte [eax]
cmp eax, 0x20
jne 0x45add9
inc edx
movsx eax, byte [edx]
cmp eax, 0x20
je 0x45add0
cmp eax, 0x2d
jne 0x45adf5
inc edx
movsx eax, byte [edx]
lea ecx, [eax - 0x30]
cmp ecx, 9
ja 0x45b53f
mov esi, 1
jmp 0x45ae0c
cmp eax, 0x2b
jne 0x45adfe
inc edx
movsx eax, byte [edx]
lea ecx, [eax - 0x30]
cmp ecx, 9
ja 0x45b5ad
xor esi, esi
xor edi, edi
xor ecx, ecx
mov dword [esp], edi
mov dword [esp + 0x1c], edi
mov dword [esp + 0x24], edi
mov dword [esp + 0x18], ebp
mov dword [esp + 0x14], ecx
mov dword [esp + 0x10], esi
mov dword [esp + 0xc], ebx
mov ebx, edx
mov ecx, edi
mov esi, dword [esp + 0x1c]
mov ebp, dword [esp]
inc ebx
lea esi, [esi + esi*4]
lea esi, [eax + esi*2 - 0x30]
test esi, esi
jle 0x45b5a0
inc ecx
cmp ecx, 8
jg 0x45b548
movsx eax, byte [ebx]
lea edx, [eax - 0x30]
cmp edx, 9
jbe 0x45ae36
mov dword [esp + 0x24], ecx
mov dword [esp + 0x1c], esi
mov ebp, dword [esp + 0x18]
mov ebx, dword [esp + 0xc]
mov ecx, dword [esp + 0x14]
mov esi, dword [esp + 0x10]
cmp dword [esp + 0x24], 0
jle 0x45aeb8
mov dword [esp + 0x18], ebp
mov eax, dword [esp + 0x1c]
mov ebp, dword [esp + 0x24]
cdq
mov eax, dword [esp + 0xa4]
mov dword [esp + 0x28], edx
mov eax, dword [eax + ebp*4]
cdq
push edx
mov eax, dword [esp + 0xa8]
push dword [eax + ebp*4]
push ecx
push edi
mov ebp, dword [esp + 0x28]
call fcn.0045b634
mov edi, eax
mov ecx, edx
add edi, dword [esp + 0x1c]
adc ecx, dword [esp + 0x28]
test esi, esi
je 0x45aeca
xor edx, edx
mov eax, edi
xor edi, edi
mov esi, ecx
xor ecx, ecx
sub edi, eax
sbb ecx, esi
sub ebx, edi
sbb ebp, ecx
jl 0x45b0e6
or ebx, ebp
je 0x45b0e6
mov edx, dword [esp + 0x78]
inc edx
mov eax, dword [esp + 0x7c]
mov ebx, dword [esp + 0xa0]
mov dword [esp + 0x78], edx
mov ecx, dword [eax + edx*4]
mov dword [esp + 0x74], ecx
mov edi, dword [ecx + ebx]
test edi, edi
je 0x45b536
movsx eax, byte [edi]
cmp eax, 0x20
jne 0x45af13
inc edi
movsx eax, byte [edi]
cmp eax, 0x20
je 0x45af0a
cmp eax, 0x2d
jne 0x45af2f
inc edi
movsx eax, byte [edi]
lea edx, [eax - 0x30]
cmp edx, 9
ja 0x45b4ce
mov ebx, 1
jmp 0x45af46
cmp eax, 0x2b
jne 0x45af38
inc edi
movsx eax, byte [edi]
lea edx, [eax - 0x30]
cmp edx, 9
ja 0x45b536
xor ebx, ebx
xor edx, edx
xor ecx, ecx
xor esi, esi
mov dword [esp + 0x64], edx
xor ebp, ebp
mov dword [esp + 0x58], esi
mov dword [esp + 0x54], ebx
mov ebx, edx
mov esi, edx
inc edi
lea esi, [esi + esi*4]
lea esi, [eax + esi*2 - 0x30]
test esi, esi
jle 0x45b529
inc ecx
cmp ecx, 8
jg 0x45b4d7
movsx eax, byte [edi]
lea edx, [eax - 0x30]
cmp edx, 9
jbe 0x45af5e
mov dword [esp + 0x64], esi
mov esi, dword [esp + 0x58]
mov ebx, dword [esp + 0x54]
test ecx, ecx
jle 0x45afc1
mov eax, dword [esp + 0x64]
cdq
mov eax, dword [esp + 0xa4]
mov edi, edx
mov eax, dword [eax + ecx*4]
cdq
push edx
mov eax, dword [esp + 0xa8]
push dword [eax + ecx*4]
push ebp
push esi
call fcn.0045b634
mov esi, eax
mov ebp, edx
add esi, dword [esp + 0x64]
adc ebp, edi
test ebx, ebx
je 0x45afd3
xor edx, edx
mov eax, esi
xor esi, esi
mov ecx, ebp
xor ebp, ebp
sub esi, eax
sbb ebp, ecx
mov edx, dword [esp + 0x80]
cmp dword [esp + 0x84], 0
je 0x45b4c5
mov eax, dword [esp + 0x84]
movsx eax, byte [eax]
cmp eax, 0x20
jne 0x45b000
inc edx
movsx eax, byte [edx]
cmp eax, 0x20
je 0x45aff7
cmp eax, 0x2d
jne 0x45b01f
inc edx
movsx eax, byte [edx]
lea ecx, [eax - 0x30]
cmp ecx, 9
ja 0x45b459
mov dword [esp + 0x70], 1
jmp 0x45b03c
cmp eax, 0x2b
jne 0x45b028
inc edx
movsx eax, byte [edx]
lea ecx, [eax - 0x30]
cmp ecx, 9
ja 0x45b4c5
mov dword [esp + 0x70], 0
xor ecx, ecx
xor ebx, ebx
mov dword [esp + 0x68], ecx
xor edi, edi
mov dword [esp + 0x5c], ebp
mov dword [esp + 0x58], esi
mov dword [esp + 0x60], ebx
mov ebx, edx
mov esi, ecx
mov ebp, edi
inc ebx
lea esi, [esi + esi*4]
lea esi, [eax + esi*2 - 0x30]
test esi, esi
jle 0x45b4b8
inc ecx
cmp ecx, 8
jg 0x45b462
movsx eax, byte [ebx]
lea edx, [eax - 0x30]
cmp edx, 9
jbe 0x45b058
mov dword [esp + 0x68], esi
mov ebp, dword [esp + 0x5c]
mov esi, dword [esp + 0x58]
mov ebx, dword [esp + 0x60]
test ecx, ecx
jle 0x45b0c3
mov eax, dword [esp + 0x68]
cdq
mov eax, dword [esp + 0xa4]
mov dword [esp + 0x6c], edx
mov eax, dword [eax + ecx*4]
cdq
push edx
mov eax, dword [esp + 0xa8]
push dword [eax + ecx*4]
push edi
push ebx
call fcn.0045b634
mov ebx, eax
mov edi, edx
add ebx, dword [esp + 0x68]
adc edi, dword [esp + 0x6c]
cmp dword [esp + 0x70], 0
je 0x45b0d8
xor edx, edx
mov eax, ebx
xor ebx, ebx
mov ecx, edi
xor edi, edi
sub ebx, eax
sbb edi, ecx
sub esi, ebx
sbb ebp, edi
jl 0x45b0e6
or esi, ebp
jne 0x45aedc
cmp dword [esp + 0x50], 0
jbe 0x45b2f9
mov eax, dword [esp + 0x7c]
mov edx, dword [esp + 0x50]
mov ebx, dword [esp + 0xa0]
mov ecx, dword [eax + edx*4]
mov ebp, dword [ecx + ebx]
test ebp, ebp
je 0x45b450
movsx eax, byte [ebp]
cmp eax, 0x20
jne 0x45b121
inc ebp
movsx eax, byte [ebp]
cmp eax, 0x20
je 0x45b117
cmp eax, 0x2d
jne 0x45b13e
inc ebp
movsx eax, byte [ebp]
lea edx, [eax - 0x30]
cmp edx, 9
ja 0x45b3e9
mov ebx, 1
jmp 0x45b156
cmp eax, 0x2b
jne 0x45b148
inc ebp
movsx eax, byte [ebp]
lea edx, [eax - 0x30]
cmp edx, 9
ja 0x45b450
xor ebx, ebx
xor edx, edx
xor ecx, ecx
xor esi, esi
xor edi, edi
mov dword [esp + 0x40], edx
mov dword [esp + 0x34], edi
mov dword [esp + 0x30], ebx
mov ebx, edx
mov edi, edx
inc ebp
lea edi, [edi + edi*4]
lea edi, [eax + edi*2 - 0x30]
test edi, edi
jle 0x45b443
inc ecx
cmp ecx, 8
jg 0x45b3f2
movsx eax, byte [ebp]
lea edx, [eax - 0x30]
cmp edx, 9
jbe 0x45b16e
mov dword [esp + 0x40], edi
mov edi, dword [esp + 0x34]
mov ebx, dword [esp + 0x30]
test ecx, ecx
jle 0x45b1d2
mov eax, dword [esp + 0x40]
cdq
mov eax, dword [esp + 0xa4]
mov ebp, edx
mov eax, dword [eax + ecx*4]
cdq
push edx
mov eax, dword [esp + 0xa8]
push dword [eax + ecx*4]
push edi
push esi
call fcn.0045b634
mov esi, eax
mov edi, edx
add esi, dword [esp + 0x40]
adc edi, ebp
test ebx, ebx
je 0x45b1e4
xor edx, edx
mov eax, esi
xor esi, esi
mov ecx, edi
xor edi, edi
sub esi, eax
sbb edi, ecx
mov edx, dword [esp + 0x80]
cmp dword [esp + 0x84], 0
je 0x45b3e0
mov eax, dword [esp + 0x84]
movsx eax, byte [eax]
cmp eax, 0x20
jne 0x45b211
inc edx
movsx eax, byte [edx]
cmp eax, 0x20
je 0x45b208
cmp eax, 0x2d
jne 0x45b230
inc edx
movsx eax, byte [edx]
lea ecx, [eax - 0x30]
cmp ecx, 9
ja 0x45b374
mov dword [esp + 0x4c], 1
jmp 0x45b24d
cmp eax, 0x2b
jne 0x45b239
inc edx
movsx eax, byte [edx]
lea ecx, [eax - 0x30]
cmp ecx, 9
ja 0x45b3e0
mov dword [esp + 0x4c], 0
xor ecx, ecx
xor ebx, ebx
mov dword [esp + 0x44], ecx
xor ebp, ebp
mov dword [esp + 0x38], esi
mov dword [esp + 0x34], edi
mov dword [esp + 0x3c], ebx
mov ebx, edx
mov edi, ecx
mov esi, ebp
inc ebx
lea edi, [edi + edi*4]
lea edi, [eax + edi*2 - 0x30]
test edi, edi
jle 0x45b3d3
inc ecx
cmp ecx, 8
jg 0x45b37d
movsx eax, byte [ebx]
lea edx, [eax - 0x30]
cmp edx, 9
jbe 0x45b269
mov dword [esp + 0x44], edi
mov esi, dword [esp + 0x38]
mov ebx, dword [esp + 0x3c]
mov edi, dword [esp + 0x34]
test ecx, ecx
jle 0x45b2d4
mov eax, dword [esp + 0x44]
cdq
mov eax, dword [esp + 0xa4]
mov dword [esp + 0x48], edx
mov eax, dword [eax + ecx*4]
cdq
push edx
mov eax, dword [esp + 0xa8]
push dword [eax + ecx*4]
push ebp
push ebx
call fcn.0045b634
mov ebx, eax
mov ebp, edx
add ebx, dword [esp + 0x44]
adc ebp, dword [esp + 0x48]
cmp dword [esp + 0x4c], 0
je 0x45b2e9
xor edx, edx
mov eax, ebx
xor ebx, ebx
mov ecx, ebp
xor ebp, ebp
sub ebx, eax
sbb ebp, ecx
sub esi, ebx
sbb edi, ebp
jge 0x45b2f9
dec dword [esp + 0x50]
jne 0x45b0f1
mov eax, dword [esp + 0x78]
cmp eax, dword [esp + 0x50]
ja 0x45b32a
mov esi, eax
mov ebp, dword [esp + 0x50]
xor eax, eax
mov ebx, dword [esp + 0x7c]
cmp eax, ebp
mov ecx, dword [esp + 0x74]
mov edx, dword [ebx + ebp*4]
mov dword [ebx + esi*4], edx
mov dword [ebx + ebp*4], ecx
sbb ebp, 0
inc esi
mov dword [esp + 0x50], ebp
mov dword [esp + 0x78], esi
mov eax, dword [esp + 0x78]
cmp eax, dword [esp + 0x50]
jbe 0x45acad
mov edi, eax
mov ebx, dword [esp + 0x7c]
mov edx, dword [esp + 4]
mov esi, dword [esp + 0x9c]
mov ebp, dword [esp + 0xa4]
lea eax, [edi - 1]
cmp edx, eax
jae 0x45b367
push ebp
push dword [esp + 0xa4]
mov ecx, ebx
push eax
call fcn.0045ac67
cmp edi, esi
jb 0x45ac83
jmp 0x45b627
xor ebx, ebx
xor ebp, ebp
jmp 0x45b2db
push ebp
push dword [esp + 0x40]
push 0
push 0x3b9aca00
call fcn.0045b634
test esi, esi
mov ecx, edx
jne 0x45b398
mov eax, dword [esp + 0x3c]
jne 0x45b39c
mov ecx, ebp
add eax, edi
mov dword [esp + 0x3c], eax
mov eax, edi
cdq
movsx eax, byte [ebx]
mov ebp, edx
adc ebp, ecx
lea esi, [eax - 0x30]
cmp esi, 9
ja 0x45b3c2
xor edi, edi
mov esi, 1
xor ecx, ecx
jmp 0x45b269
mov esi, dword [esp + 0x38]
mov ebx, dword [esp + 0x3c]
mov edi, dword [esp + 0x34]
jmp 0x45b2d4
test esi, esi
je 0x45b283
jmp 0x45b279
xor ebx, ebx
xor ebp, ebp
jmp 0x45b2e9
xor esi, esi
xor edi, edi
jmp 0x45b1d6
push dword [esp + 0x34]
push esi
push 0
push 0x3b9aca00
call fcn.0045b634
test ebx, ebx
mov ecx, edx
jne 0x45b40b
mov eax, esi
mov esi, eax
mov eax, edi
jne 0x45b415
mov ecx, dword [esp + 0x34]
cdq
movsx eax, byte [ebp]
add esi, edi
adc edx, ecx
mov dword [esp + 0x34], edx
lea ebx, [eax - 0x30]
cmp ebx, 9
ja 0x45b438
xor edi, edi
mov ebx, 1
xor ecx, ecx
jmp 0x45b16e
mov edi, edx
mov ebx, dword [esp + 0x30]
jmp 0x45b1d2
test ebx, ebx
je 0x45b188
jmp 0x45b17e
xor esi, esi
xor edi, edi
jmp 0x45b1e4
xor ebx, ebx
xor edi, edi
jmp 0x45b0ca
push edi
push dword [esp + 0x64]
push 0
push 0x3b9aca00
call fcn.0045b634
test ebp, ebp
mov ecx, edx
jne 0x45b47d
mov eax, dword [esp + 0x60]
jne 0x45b481
mov ecx, edi
add eax, esi
mov dword [esp + 0x60], eax
mov eax, esi
cdq
movsx eax, byte [ebx]
mov edi, edx
adc edi, ecx
lea ebp, [eax - 0x30]
cmp ebp, 9
ja 0x45b4a7
xor esi, esi
mov ebp, 1
xor ecx, ecx
jmp 0x45b058
mov ebp, dword [esp + 0x5c]
mov esi, dword [esp + 0x58]
mov ebx, dword [esp + 0x60]
jmp 0x45b0c3
test ebp, ebp
je 0x45b072
jmp 0x45b068
xor ebx, ebx
xor edi, edi
jmp 0x45b0d8
xor esi, esi
xor ebp, ebp
jmp 0x45afc5
push ebp
push dword [esp + 0x5c]
push 0
push 0x3b9aca00
call fcn.0045b634
test ebx, ebx
mov ecx, edx
jne 0x45b4f2
mov eax, dword [esp + 0x58]
jne 0x45b4f6
mov ecx, ebp
add eax, esi
mov dword [esp + 0x58], eax
mov eax, esi
cdq
movsx eax, byte [edi]
mov ebp, edx
adc ebp, ecx
lea ebx, [eax - 0x30]
cmp ebx, 9
ja 0x45b51c
xor esi, esi
mov ebx, 1
xor ecx, ecx
jmp 0x45af5e
mov esi, dword [esp + 0x58]
mov ebx, dword [esp + 0x54]
jmp 0x45afc1
test ebx, ebx
je 0x45af78
jmp 0x45af6e
xor esi, esi
xor ebp, ebp
jmp 0x45afd3
xor edi, edi
xor ecx, ecx
jmp 0x45aebc
push dword [esp + 0x14]
push edi
push 0
push 0x3b9aca00
call fcn.0045b634
test ebp, ebp
mov ecx, edx
jne 0x45b561
mov eax, edi
mov edi, eax
mov eax, esi
jne 0x45b56b
mov ecx, dword [esp + 0x14]
cdq
movsx eax, byte [ebx]
add edi, esi
adc edx, ecx
mov dword [esp + 0x14], edx
lea ebp, [eax - 0x30]
cmp ebp, 9
ja 0x45b58d
xor esi, esi
mov ebp, 1
xor ecx, ecx
jmp 0x45ae36
mov ebp, dword [esp + 0x18]
mov ebx, dword [esp + 0xc]
mov ecx, edx
mov esi, dword [esp + 0x10]
jmp 0x45aeb8
test ebp, ebp
je 0x45ae50
jmp 0x45ae46
xor edi, edi
xor ecx, ecx
jmp 0x45aeca
xor ebx, ebx
xor ebp, ebp
jmp 0x45ad8f
push ebp
push dword [esp + 0x10]
push 0
push 0x3b9aca00
call fcn.0045b634
test ebx, ebx
mov ecx, edx
jne 0x45b5da
mov eax, dword [esp + 0xc]
jne 0x45b5de
mov ecx, ebp
add eax, esi
mov dword [esp + 0xc], eax
mov eax, esi
cdq
movsx eax, byte [edi]
mov ebp, edx
adc ebp, ecx
lea ebx, [eax - 0x30]
cmp ebx, 9
ja 0x45b604
xor esi, esi
mov ebx, 1
xor ecx, ecx
jmp 0x45ad28
mov ebx, dword [esp + 0xc]
mov esi, dword [esp + 8]
jmp 0x45ad8b
test ebx, ebx
je 0x45ad42
jmp 0x45ad38
xor ebx, ebx
xor ebp, ebp
jmp 0x45ad9d
add esp, 0x88
pop ebp
pop ebx
pop edi
pop esi
ret 0xc