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

Disassembly:
push ebp
push edi
push esi
push ebx
sub esp, 0x7c
mov edi, dword [esp + 0x90]
mov ebp, dword [esp + 0x94]
mov dword [esp + 0x20], eax
mov eax, dword [eax + 8]
mov dword [esp + 0x54], edx
mov dword [esp + 0x10], edi
mov edi, dword [eax + 0x6c]
mov dword [esp + 0x14], ebp
mov dword [esp + 0x34], eax
mov dword [esp + 0x58], edi
cmp edi, dword [eax + 0x70]
jge 0x746298
mov edi, dword [esp + 0x58]
mov esi, dword [esp + 0x34]
lea eax, [edi + 1]
mov edx, dword [esi + 0x68]
mov dword [esi + 0x6c], eax
lea eax, [edi + edi*4]
lea eax, [edx + eax*4]
mov dword [eax], 0xf
mov dword [eax + 4], 0
mov dword [eax + 8], 0
mov dword [eax + 0xc], 0
mov dword [eax + 0x10], 0
mov edi, dword [esp + 0x54]
mov eax, dword [edi]
mov esi, dword [eax + 4]
mov eax, dword [esp + 0x98]
movzx eax, byte [eax + 0x3c]
mov dword [esp + 0x30], esi
mov dword [esp + 0x40], eax
lea eax, [eax + eax*8]
shl eax, 3
lea ebx, [esi + eax + 8]
mov eax, dword [esi + eax + 0x18]
mov dword [esp + 0x1c], ebx
mov ebx, dword [edi + 0x18]
mov dword [esp + 0x3c], eax
mov eax, dword [edi + 0xc]
mov edi, dword [esp + 0x98]
lea eax, [eax + eax*2]
mov edi, dword [edi + 0x50]
shl eax, 4
add eax, ebx
mov dword [esp + 0xc], eax
mov dword [esp + 0x2c], edi
cmp ebx, eax
jae 0x7463c5
mov dword [esp + 0x38], 0
xor ebp, ebp
mov dword [esp + 0x24], 0
mov dword [esp + 0x28], 0
mov dword [esp + 0x18], 0
jmp 0x745a93
sub esp, 8
mov eax, ebx
push dword [esp + 0x1c]
push dword [esp + 0x1c]
mov edx, dword [esp + 0x2c]
call fcn.006c1760
add esp, 0x10
test eax, eax
je 0x745a8a
mov ecx, dword [ebx + 0x18]
xor esi, esi
mov edi, 0x80000000
cmp ecx, 0x3f
jg 0x745a21
mov edi, ecx
shr edi, 5
and edi, 1
mov esi, edi
shl edi, cl
xor esi, 1
shl esi, cl
mov eax, ebp
test al, al
je 0x7460b0
mov eax, dword [esp + 0x24]
mov edx, dword [esp + 0x28]
and eax, esi
and edx, edi
or edx, eax
jne 0x745af8
mov eax, dword [esp + 0x18]
lea ebp, [eax + 1]
mov eax, dword [esp + 0x2c]
movzx eax, word [eax + 0x34]
cmp ebp, eax
jle 0x745a6b
mov eax, dword [esp + 0x20]
mov edx, dword [esp + 0x2c]
mov ecx, ebp
mov eax, dword [eax]
call fcn.006cf390
test eax, eax
jne 0x746091
mov eax, dword [esp + 0x2c]
mov ecx, dword [esp + 0x18]
mov dword [esp + 0x18], ebp
mov ebp, 1
or dword [esp + 0x24], esi
mov eax, dword [eax + 0x38]
or dword [esp + 0x28], edi
mov dword [eax + ecx*4], ebx
add ebx, 0x30
cmp dword [esp + 0xc], ebx
jbe 0x745b06
test byte [ebx + 0xa], 2
jne 0x7459e0
mov eax, dword [esp + 0x98]
mov esi, dword [ebx]
mov edx, dword [esp + 0x30]
movzx ecx, byte [eax + 0x3c]
mov eax, esi
call fcn.006cabc0
test eax, eax
je 0x7459e0
test esi, esi
je 0x745ada
sub esp, 0xc
mov edx, esi
xor ecx, ecx
push 0
mov eax, dword [esp + 0x30]
mov eax, dword [eax]
call fcn.006d1d00
add esp, 0x10
mov esi, eax
mov edx, dword [esp + 0x38]
mov eax, dword [esp + 0x20]
mov ecx, esi
call fcn.006e32e0
mov dword [esp + 0x38], eax
jmp 0x7459e0
mov ebp, 1
add ebx, 0x30
cmp dword [esp + 0xc], ebx
ja 0x745a93
movzx eax, word [esp + 0x18]
mov edi, dword [esp + 0x2c]
mov dword [esp + 0x48], 0xffffffff
mov dword [esp + 0x4c], 0xffffffff
mov word [edi + 0x30], ax
mov word [edi + 0x18], ax
mov eax, dword [esp + 0x40]
mov dword [edi + 0x2c], 0x4241
mov edi, dword [esp + 0x30]
lea eax, [eax + eax*8]
lea edx, [edi + eax*8]
mov edi, dword [esp + 0x3c]
mov eax, dword [edx + 0x40]
mov ebx, dword [edx + 0x44]
cmp byte [edi + 0x2b], 2
je 0x745b6a
mov ecx, dword [esp + 0x28]
mov edx, dword [esp + 0x24]
not ecx
not edx
or ecx, 0x80000000
and edx, eax
and ecx, ebx
mov dword [esp + 0x48], edx
mov dword [esp + 0x4c], ecx
mov eax, dword [esp + 0x3c]
mov ebp, 0x3f
movsx eax, word [eax + 0x22]
cmp ax, 0x3f
mov word [esp + 0x5e], ax
cmovle ebp, eax
test ax, ax
jle 0x745bca
mov esi, dword [esp + 0x18]
mov edi, dword [esp + 0x48]
mov dword [esp + 0x24], ebx
mov ebx, ebp
mov ebp, dword [esp + 0x4c]
xor ecx, ecx
lea esi, [esi]
mov edx, ebp
mov eax, edi
shrd eax, edx, cl
shr edx, cl
test cl, 0x20
je 0x745bb0
mov eax, edx
and eax, 1
cmp eax, 1
sbb esi, 0xffffffff
add ecx, 1
cmp ebx, ecx
jne 0x745ba0
mov dword [esp + 0x18], esi
mov ebp, ebx
mov ebx, dword [esp + 0x24]
test ebx, ebx
jns 0x745bdf
mov edi, dword [esp + 0x18]
movsx eax, word [esp + 0x5e]
lea eax, [edi + eax - 0x3f]
mov dword [esp + 0x18], eax
movzx eax, word [esp + 0x18]
sub esp, 0xc
xor ecx, ecx
lea edx, [eax + 1]
lea eax, [esp + 0x78]
push eax
mov eax, dword [esp + 0x30]
movsx edx, dx
mov eax, dword [eax]
call fcn.006d14c0
mov dword [esp + 0x34], eax
add esp, 0x10
test eax, eax
je 0x746091
mov edi, dword [esp + 0x2c]
mov dword [edi + 0x20], eax
mov edi, dword [esp + 0x3c]
mov dword [eax], 0xa343f2
mov dword [eax + 0xc], edi
mov eax, dword [esp + 0x54]
mov ebx, dword [eax + 0x18]
cmp dword [esp + 0xc], ebx
jbe 0x74634a
xor edi, edi
mov esi, dword [esp + 0x1c]
mov byte [esp + 0x5d], 0
mov dword [esp + 0x28], 0
mov dword [esp + 0x44], 0
mov dword [esp + 0x50], edi
mov dword [esp + 0x1c], ebp
jmp 0x745c6d
add ebx, 0x30
cmp dword [esp + 0xc], ebx
jbe 0x745d40
sub esp, 8
mov edx, esi
mov eax, ebx
push dword [esp + 0x1c]
push dword [esp + 0x1c]
call fcn.006c1760
add esp, 0x10
test eax, eax
je 0x745c60
mov ecx, dword [ebx + 0x18]
xor eax, eax
mov edx, 0x80000000
cmp ecx, 0x3f
jg 0x745ca8
xor eax, eax
xor edx, edx
test cl, 0x20
sete al
setne dl
shl edx, cl
shl eax, cl
mov edi, dword [esp + 0x28]
mov ebp, dword [esp + 0x44]
and edi, eax
and ebp, edx
or ebp, edi
jne 0x745c60
or dword [esp + 0x28], eax
mov eax, dword [esp + 0x24]
mov edi, dword [ebx]
or dword [esp + 0x44], edx
mov eax, dword [eax + 4]
mov edx, dword [esp + 0x50]
mov word [eax + edx*2], cx
mov eax, dword [edi + 0x10]
mov edx, dword [edi + 0xc]
test byte [edi + 5], 4
jne 0x7460d8
mov ecx, eax
mov eax, dword [esp + 0x20]
call fcn.006e8380
mov edx, 0xa40a00
test eax, eax
je 0x745cf7
mov edx, dword [eax]
mov eax, dword [esp + 0x24]
mov ecx, dword [esp + 0x50]
mov eax, dword [eax + 0x20]
mov dword [eax + ecx*4], edx
mov eax, dword [edi + 0xc]
add ecx, 1
mov dword [esp + 0x50], ecx
test eax, eax
je 0x745c60
call fcn.006b1690
movzx edi, byte [esp + 0x5d]
cmp al, 0x42
mov eax, 1
cmovne edi, eax
add ebx, 0x30
mov eax, edi
mov byte [esp + 0x5d], al
cmp dword [esp + 0xc], ebx
ja 0x745c6d
nop
movzx ecx, byte [esp + 0x5d]
mov edi, dword [esp + 0x50]
mov ebp, dword [esp + 0x1c]
and ecx, 1
lea edx, [edi + edi]
lea eax, [edi*4]
mov byte [esp + 0x1c], cl
mov ebx, dword [esp + 0x24]
cmp word [esp + 0x5e], 0
mov esi, dword [ebx + 4]
mov ebx, dword [ebx + 0x20]
jle 0x745dcc
mov dword [esp + 0xc], esi
mov esi, dword [esp + 0x4c]
xor ecx, ecx
mov dword [esp + 0x10], ebx
mov ebx, dword [esp + 0x48]
lea esi, [esi]
mov edx, esi
mov eax, ebx
shrd eax, edx, cl
shr edx, cl
test cl, 0x20
je 0x745d98
mov eax, edx
and eax, 1
je 0x745db3
mov eax, dword [esp + 0xc]
mov word [eax + edi*2], cx
mov eax, dword [esp + 0x10]
mov dword [eax + edi*4], 0xa40a00
add edi, 1
add ecx, 1
cmp ebp, ecx
jne 0x745d88
mov esi, dword [esp + 0xc]
mov ebx, dword [esp + 0x10]
lea edx, [edi + edi]
lea eax, [edi*4]
mov ecx, dword [esp + 0x40]
mov ebp, dword [esp + 0x30]
lea ecx, [ecx + ecx*8]
mov ecx, dword [ebp + ecx*8 + 0x44]
test ecx, ecx
js 0x7461a8
mov ebp, 0xffffffff
sub esp, 8
mov word [esi + edx], bp
mov esi, dword [esp + 0x28]
mov edx, 0x74
mov dword [ebx + eax], 0xa40a00
mov ecx, dword [esi + 0x28]
lea eax, [ecx + 1]
mov dword [esi + 0x28], eax
mov eax, dword [esp + 0xa0]
mov dword [eax + 8], ecx
push 0
mov eax, dword [esp + 0x24]
add eax, 1
push eax
mov eax, dword [esp + 0x44]
call fcn.006dc9d0
mov edx, dword [esp + 0x34]
mov eax, esi
call fcn.006e6a00
mov eax, dword [esi]
add esp, 0x10
test byte [eax + 0x52], 8
jne 0x745e46
cmp byte [esp + 0x1c], 0
jne 0x7462e7
mov eax, dword [esp + 0x34]
mov esi, dword [esp + 0x30]
mov ebx, dword [eax + 0x6c]
mov edx, dword [eax + 0x70]
mov eax, dword [esp + 0x40]
lea eax, [eax + eax*8]
lea eax, [esi + eax*8]
test byte [eax + 0x30], 0x20
jne 0x7460f0
mov eax, dword [esp + 0x98]
mov ecx, dword [eax + 4]
cmp ebx, edx
jge 0x74635a
mov esi, dword [esp + 0x34]
lea eax, [ebx + 1]
mov dword [esp + 0x10], 0
mov edx, dword [esi + 0x68]
mov dword [esi + 0x6c], eax
lea eax, [ebx + ebx*4]
lea eax, [edx + eax*4]
mov dword [eax + 4], ecx
mov dword [eax + 8], 0
mov dword [eax + 0xc], 0
mov dword [eax + 0x10], 0
mov dword [eax], 0x24
mov eax, dword [esp + 0x38]
xor esi, esi
test eax, eax
je 0x745ee6
mov ecx, dword [esp + 0x20]
mov esi, dword [ecx + 0x38]
mov dword [esp + 0xc], esi
sub esi, 1
mov dword [ecx + 0x38], esi
push 0x10
push esi
push eax
push ecx
call fcn.0073add0
mov eax, dword [esp + 0x3c]
add esp, 0x10
or dword [eax + 0x2c], 0x20000
mov eax, dword [esp + 0x20]
movzx eax, byte [eax + 0x13]
test al, al
je 0x746210
mov ecx, dword [esp + 0x20]
sub eax, 1
mov byte [ecx + 0x13], al
movzx eax, al
mov eax, dword [ecx + eax*4 + 0xa4]
mov dword [esp + 0xc], eax
mov eax, dword [esp + 0x98]
sub esp, 0xc
mov ecx, dword [eax + 4]
push 0
push 0
push 0
push 0
push dword [esp + 0x28]
mov edx, dword [esp + 0x44]
mov eax, dword [esp + 0x40]
call fcn.00744ea0
mov ebp, eax
mov eax, dword [esp + 0xb8]
add esp, 0x20
mov ecx, dword [eax + 0x34]
test ecx, ecx
jne 0x746270
mov eax, dword [esp + 0x98]
sub esp, 8
mov edx, 0x8a
mov ecx, dword [eax + 8]
push 0
push dword [esp + 0x18]
mov eax, dword [esp + 0x44]
call fcn.006dc9d0
mov ecx, dword [esp + 0x44]
add esp, 0x10
mov edx, dword [ecx + 0x6c]
test edx, edx
jle 0x745f8c
lea eax, [edx + edx*4]
shl eax, 2
add eax, dword [ecx + 0x68]
mov ecx, 0x10
mov word [eax - 0x12], cx
mov eax, dword [esp + 0x38]
test eax, eax
je 0x745faf
mov eax, dword [esp + 0x34]
not esi
mov eax, dword [eax + 0xc]
mov ecx, dword [eax + 0x38]
add ecx, dword [eax + 0x3c]
js 0x74633a
mov eax, dword [eax + 0x40]
mov dword [eax + esi*4], edx
mov eax, dword [esp + 0x98]
mov esi, dword [esp + 0x30]
mov ecx, dword [eax + 4]
mov eax, dword [esp + 0x40]
lea eax, [eax + eax*8]
test byte [esi + eax*8 + 0x30], 0x20
je 0x746230
lea edx, [edi + ebp]
mov edi, dword [esp + 0x34]
mov eax, 0xaa748c
mov esi, dword [edi]
cmp byte [esi + 0x57], 0
jne 0x745ff0
mov eax, dword [esp + 0x10]
lea esi, [eax + eax*4]
mov eax, dword [edi + 0x68]
lea eax, [eax + esi*4]
mov edi, dword [esp + 0x20]
sub esp, 4
mov dword [eax + 8], edx
mov eax, dword [esp + 0x9c]
mov edx, dword [edi + 8]
push dword [eax + 8]
mov eax, dword [esp + 0x48]
mov esi, dword [esp + 0x38]
lea eax, [eax + eax*8]
lea esi, [esi + eax*8]
mov eax, dword [edi]
push dword [esi + 0x28]
push ecx
mov ecx, ebx
call fcn.006ba720
mov edi, dword [esp + 0x44]
mov edx, ebx
mov eax, edi
call fcn.006dd090
and byte [esi + 0x30], 0xdf
mov eax, dword [edi + 0x6c]
add esp, 0x10
mov edi, dword [esp + 0x34]
mov edx, dword [edi]
cmp byte [edx + 0x57], 0
jne 0x7461f0
mov edx, dword [edi + 0x68]
lea ecx, [ebx + ebx*4]
mov dword [edx + ecx*4 + 8], eax
mov ecx, dword [esp + 0xc]
test ecx, ecx
je 0x746084
mov edi, dword [esp + 0x20]
movzx ecx, byte [edi + 0x13]
cmp cl, 7
ja 0x746084
mov esi, dword [esp + 0x20]
mov edi, dword [esp + 0xc]
lea edx, [ecx + 1]
mov byte [esi + 0x13], dl
mov dword [esi + ecx*4 + 0xa4], edi
mov edi, dword [esp + 0x34]
mov edx, dword [edi + 0x68]
mov edi, dword [esp + 0x58]
lea ecx, [edi + edi*4]
lea edx, [edx + ecx*4]
mov dword [edx + 8], eax
mov eax, dword [esp + 0x38]
test eax, eax
je 0x7460a6
mov edx, eax
mov eax, dword [esp + 0x20]
mov eax, dword [eax]
call fcn.006c4840
add esp, 0x7c
pop ebx
pop esi
pop edi
pop ebp
ret
mov eax, dword [esp + 0x3c]
shl ecx, 4
add ecx, dword [eax + 4]
push dword [ecx]
push dword [eax]
push 0xa343d8
push 0x11c
call fcn.006f2970
add esp, 0x10
jmp 0x745a2b
mov ecx, edx
mov edx, eax
mov eax, dword [esp + 0x20]
call fcn.006e8380
jmp 0x745cec
mov esi, dword [eax + 0x24]
cmp ebx, edx
jge 0x7463a2
mov ecx, dword [esp + 0x34]
lea eax, [ebx + 1]
lea edx, [ebx + ebx*4]
mov dword [esp + 0x10], ebx
mov dword [ecx + 0x6c], eax
mov eax, dword [ecx + 0x68]
lea eax, [eax + edx*4]
mov dword [eax], 0x47
mov dword [eax + 4], 0
mov dword [eax + 8], 0
mov dword [eax + 0xc], 0
mov dword [eax + 0x10], 0
sub esp, 8
mov ecx, esi
mov edx, 0xb
mov eax, dword [esp + 0x48]
mov ebx, dword [esp + 0x38]
lea eax, [eax + eax*8]
push dword [ebx + eax*8 + 0x20]
push 0
mov ebx, dword [esp + 0x44]
mov eax, ebx
call fcn.006dc9d0
mov eax, ebx
add esp, 0x10
mov ebx, dword [ebx + 0x6c]
cmp ebx, dword [eax + 0x70]
jge 0x746381
mov ecx, dword [esp + 0x34]
lea eax, [ebx + 1]
mov edx, dword [ecx + 0x68]
mov dword [ecx + 0x6c], eax
lea eax, [ebx + ebx*4]
lea eax, [edx + eax*4]
mov dword [eax + 4], esi
mov dword [eax + 8], 0
mov dword [eax + 0xc], 0
mov dword [eax + 0x10], 0
mov dword [eax], 0xc
jmp 0x745eb3
mov ecx, dword [esp + 0x3c]
cmp word [ecx + 0x22], 0x3f
jle 0x745de3
mov eax, 0x3f
lea esi, [esi]
mov word [esi + edi*2], ax
movsx edx, word [ecx + 0x22]
add eax, 1
mov dword [ebx + edi*4], 0xa40a00
add edi, 1
cmp edx, eax
jg 0x7461c0
lea edx, [edi + edi]
lea eax, [edi*4]
jmp 0x745de3
mov edx, dword [esp + 0xc]
mov dword [0xaa7494], eax
test edx, edx
jne 0x7462c0
mov edx, 0xaa748c
jmp 0x74608e
mov eax, dword [esp + 0x20]
mov edx, dword [eax + 0x2c]
lea ecx, [edx + 1]
mov dword [esp + 0xc], ecx
mov dword [eax + 0x2c], ecx
jmp 0x745f0e
sub esp, 8
lea eax, [ebx + 1]
mov edx, 0x27
push 0
push eax
mov edi, dword [esp + 0x44]
mov eax, edi
call fcn.006dc9d0
mov eax, dword [edi + 0x6c]
add esp, 0x10
test eax, eax
jle 0x746039
mov esi, dword [edi + 0x68]
lea edx, [eax + eax*4]
mov edi, 3
lea edx, [esi + edx*4]
mov word [edx - 0x12], di
jmp 0x746039
sub esp, 4
mov edx, 0xb7
mov eax, dword [esp + 0x30]
movzx eax, word [eax + 0x18]
push eax
push ebp
push 0
mov eax, dword [esp + 0x44]
call fcn.006dd2e0
add esp, 0x10
jmp 0x745f4b
sub esp, 8
xor ecx, ecx
mov edx, 0xf
push 0
push 0
mov eax, dword [esp + 0x44]
call fcn.006dc960
mov dword [esp + 0x68], eax
add esp, 0x10
jmp 0x745955
mov edi, dword [esp + 0x20]
movzx edx, byte [edi + 0x13]
cmp dl, 7
ja 0x746201
mov esi, dword [esp + 0xc]
lea ecx, [edx + 1]
mov byte [edi + 0x13], cl
mov dword [edi + edx*4 + 0xa4], esi
jmp 0x746201
mov eax, dword [esp + 0x54]
mov esi, dword [esp + 0x20]
mov ecx, dword [esp + 0x98]
mov eax, dword [eax]
mov edx, dword [eax + 4]
mov eax, esi
call fcn.006de5b0
mov eax, dword [esi + 0x2c]
sub esp, 8
mov ecx, 0x2710
mov edx, 0x4d
mov dword [esp + 0x14], eax
add eax, 1
mov dword [esi + 0x2c], eax
mov esi, dword [esp + 0xa0]
mov dword [esi + 0x34], eax
push 0
push eax
mov eax, dword [esp + 0x44]
call fcn.006dc9d0
add esp, 0x10
jmp 0x745e46
mov edx, dword [esp + 0x34]
mov ecx, esi
call fcn.006df100
jmp 0x745faf
mov byte [esp + 0x1c], 0
xor eax, eax
xor edx, edx
xor edi, edi
jmp 0x745d5e
sub esp, 8
mov edx, 0x24
push 0
push 0
mov eax, dword [esp + 0x44]
call fcn.006dc960
add esp, 0x10
mov ebx, eax
mov dword [esp + 0x10], 0
jmp 0x745eb3
sub esp, 8
mov ecx, esi
mov edx, 0xc
push 0
push 0
mov eax, dword [esp + 0x44]
call fcn.006dc960
add esp, 0x10
mov ebx, eax
jmp 0x745eb3
sub esp, 8
xor ecx, ecx
mov edx, 0x47
push 0
push 0
mov eax, dword [esp + 0x44]
call fcn.006dc960
mov dword [esp + 0x20], eax
add esp, 0x10
jmp 0x746134
mov dword [esp + 0x38], 0
xor eax, eax
mov dword [esp + 0x24], 0
mov dword [esp + 0x28], 0
mov dword [esp + 0x18], 0
jmp 0x745b0b