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

Disassembly:
mov ecx, dword fs:[0x14]
mov ecx, dword [ecx]
cmp esp, dword [ecx + 8]
jbe 0x7145b3d4
sub esp, 0x7c
mov eax, dword [esp + 0x80]
xor ecx, ecx
xor edx, edx
xor ebx, ebx
xor ebp, ebp
xor esi, esi
xor edi, edi
xor ecx, ecx
mov dword [esp + 0x20], ecx
xor ecx, ecx
mov dword [esp + 0x3c], ecx
jmp 0x7145ad12
mov edx, ebp
mov ebp, eax
mov eax, dword [esp + 0x80]
mov eax, ecx
mov ecx, ebx
mov ebx, eax
mov eax, dword [esp + 0x80]
mov dword [esp + 0x38], edx
mov dword [esp + 0x48], esi
mov dword [esp + 0x24], edi
xchg ebp, eax
mov byte [esp + 0x1e], al
xchg ebp, eax
mov esi, dword [eax + 0x10]
mov edi, dword [eax + 0xc]
test esi, esi
jl 0x7145ad51
cmp edx, esi
xchg esi, ebx
setl bl
xchg esi, ebx
sete dl
cmp ecx, edi
xchg edi, ebx
setb bl
xchg edi, ebx
and edi, edx
or esi, edi
xchg esi, eax
test al, al
xchg esi, eax
je 0x7145b2db
mov dword [esp + 0x34], ecx
mov dword [esp + 0x40], ebx
mov edx, dword [eax + 0x88]
mov ebp, dword [eax]
mov esi, dword [eax + 0x14]
mov edi, dword [eax + 0x18]
mov eax, dword [eax + 0x1c]
mov dword [esp], ebp
mov dword [esp + 4], esi
mov dword [esp + 8], edi
mov dword [esp + 0xc], eax
and edx, ecx
mov dword [esp + 0x30], edx
shl ebx, 4
add ebx, edx
mov dword [esp + 0x6c], ebx
mov dword [esp + 0x10], ebx
call fcn.7145cd20
mov eax, dword [esp + 0x14]
test eax, eax
jne 0x7145aee0
mov edx, dword [esp + 0x80]
mov ebx, dword [edx + 0x80]
mov ecx, dword [ebx + 0xc]
cmp ecx, 0x20
sbb ebp, ebp
lea esi, [ecx - 8]
xchg esi, ebx
neg ebx
xchg esi, ebx
cmp esi, 8
sbb edi, edi
mov eax, edx
mov edx, dword [ebx + 4]
mov dword [esp + 0x68], edx
mov edx, dword [ebx]
mov dword [esp + 0x78], edx
mov ebx, dword [ebx + 0x10]
mov edx, dword [esp + 0x34]
and ebx, edx
shl ebx, cl
and ebx, ebp
mov ecx, esi
movzx ebp, byte [esp + 0x1e]
xchg ebp, eax
shr al, cl
xchg ebp, eax
and ebp, edi
xchg ebp, eax
movzx eax, al
xchg ebp, eax
add ebx, ebp
mov ecx, dword [esp + 0x68]
cmp ecx, ebx
jbe 0x7145b3cc
nop
mov ebp, dword [esp + 0x78]
mov ebx, dword [ebp + ebx*4]
mov ebp, dword [esp + 0x40]
cmp ebp, 7
jb 0x7145ae55
mov esi, dword [eax + 4]
mov edi, dword [esi + 0x18]
mov ecx, edx
mov edx, dword [esp + 0x3c]
sub edi, edx
lea edx, [edi - 1]
mov ebp, dword [esi + 0x14]
cmp ebp, edx
ja 0x7145ae2a
lea edx, [ebp + edi - 1]
mov ebp, dword [esi + 0xc]
mov esi, dword [esi + 8]
cmp edx, ebp
jae 0x7145b3c3
mov ecx, dword [eax]
movzx edx, byte [edx + esi]
mov dword [esp], ebx
mov dword [esp + 4], ecx
mov byte [esp + 8], dl
call fcn.7145c480
movzx eax, byte [esp + 0xc]
jmp 0x7145ae68
mov ecx, dword [eax]
mov dword [esp], ebx
mov dword [esp + 4], ecx
call fcn.7145c410
movzx eax, byte [esp + 8]
mov edx, dword [esp + 0x80]
mov ebx, dword [edx + 4]
mov ecx, dword [ebx + 0xc]
mov ebp, dword [ebx + 8]
mov esi, dword [ebx + 0x18]
cmp ecx, esi
jbe 0x7145b3bc
mov byte [ebp + esi], al
mov ecx, dword [ebx + 0x18]
inc ecx
mov dword [ebx + 0x18], ecx
cmp dword [ebx + 0x14], ecx
ja 0x7145aeab
mov byte [esp + 0x1f], al
mov dword [esp], ebx
call fcn.7145a8f0
movzx eax, byte [esp + 0x1f]
mov edx, dword [esp + 0x80]
mov ecx, dword [esp + 0x40]
cmp ecx, 4
jae 0x7145aeb8
xor ecx, ecx
jmp 0x7145aec5
cmp ecx, 0xa
jae 0x7145aec2
add ecx, 0xfffffffd
jmp 0x7145aec5
add ecx, 0xfffffffa
mov ebx, dword [esp + 0x34]
add ebx, 1
mov ebp, dword [esp + 0x38]
adc ebp, 0
mov esi, dword [esp + 0x48]
mov edi, dword [esp + 0x24]
jmp 0x7145acfa
mov eax, dword [esp + 0x80]
mov ecx, dword [eax]
mov edx, dword [eax + 0x20]
mov ebx, dword [eax + 0x24]
mov ebp, dword [eax + 0x28]
mov dword [esp], ecx
mov dword [esp + 4], edx
mov dword [esp + 8], ebx
mov dword [esp + 0xc], ebp
mov ecx, dword [esp + 0x40]
mov dword [esp + 0x10], ecx
call fcn.7145cd20
cmp dword [esp + 0x14], 1
jne 0x7145b0c9
mov eax, dword [esp + 0x80]
mov ecx, dword [eax]
mov edx, dword [eax + 0x2c]
mov ebx, dword [eax + 0x30]
mov ebp, dword [eax + 0x34]
mov dword [esp], ecx
mov dword [esp + 4], edx
mov dword [esp + 8], ebx
mov dword [esp + 0xc], ebp
mov ecx, dword [esp + 0x40]
mov dword [esp + 0x10], ecx
call fcn.7145cd20
mov eax, dword [esp + 0x14]
test eax, eax
jne 0x7145afc0
mov eax, dword [esp + 0x80]
mov ecx, dword [eax]
mov edx, dword [eax + 0x50]
mov ebx, dword [eax + 0x54]
mov ebp, dword [eax + 0x58]
mov dword [esp], ecx
mov dword [esp + 4], edx
mov dword [esp + 8], ebx
mov dword [esp + 0xc], ebp
mov ecx, dword [esp + 0x6c]
mov dword [esp + 0x10], ecx
call fcn.7145cd20
mov eax, dword [esp + 0x14]
test eax, eax
jne 0x7145afa1
mov eax, dword [esp + 0x40]
cmp eax, 7
jae 0x7145af95
mov eax, 9
jmp 0x7145af9a
mov eax, 0xb
mov ecx, 1
jmp 0x7145afa7
xor ecx, ecx
mov eax, dword [esp + 0x40]
mov edx, dword [esp + 0x48]
mov ebx, dword [esp + 0x20]
mov ebp, ecx
mov esi, eax
mov ecx, dword [esp + 0x3c]
mov eax, dword [esp + 0x24]
jmp 0x7145b05a
mov eax, dword [esp + 0x80]
mov ecx, dword [eax]
mov edx, dword [eax + 0x38]
mov ebx, dword [eax + 0x3c]
mov ebp, dword [eax + 0x40]
mov dword [esp], ecx
mov dword [esp + 4], edx
mov dword [esp + 8], ebx
mov dword [esp + 0xc], ebp
mov ecx, dword [esp + 0x40]
mov dword [esp + 0x10], ecx
call fcn.7145cd20
mov eax, dword [esp + 0x14]
test eax, eax
jne 0x7145b004
mov edx, dword [esp + 0x48]
mov eax, dword [esp + 0x24]
mov ecx, dword [esp + 0x20]
jmp 0x7145b050
mov eax, dword [esp + 0x80]
mov ecx, dword [eax]
mov edx, dword [eax + 0x44]
mov ebx, dword [eax + 0x48]
mov ebp, dword [eax + 0x4c]
mov dword [esp], ecx
mov dword [esp + 4], edx
mov dword [esp + 8], ebx
mov dword [esp + 0xc], ebp
mov ecx, dword [esp + 0x40]
mov dword [esp + 0x10], ecx
call fcn.7145cd20
mov eax, dword [esp + 0x14]
test eax, eax
jne 0x7145b044
mov eax, dword [esp + 0x24]
mov ecx, dword [esp + 0x48]
jmp 0x7145b04c
mov eax, dword [esp + 0x48]
mov ecx, dword [esp + 0x24]
mov edx, dword [esp + 0x20]
mov ebx, dword [esp + 0x3c]
xor ebp, ebp
mov esi, dword [esp + 0x40]
test ebp, ebp
jne 0x7145b217
mov dword [esp + 0x64], esi
mov dword [esp + 0x60], edx
mov dword [esp + 0x5c], eax
mov dword [esp + 0x58], ebx
mov dword [esp + 0x54], ecx
mov eax, dword [esp + 0x80]
mov ecx, dword [eax + 0x7c]
mov edx, dword [eax]
mov dword [esp], ecx
mov dword [esp + 4], edx
mov ecx, dword [esp + 0x30]
mov dword [esp + 8], ecx
call fcn.7145c2e0
mov eax, dword [esp + 0xc]
mov ecx, dword [esp + 0x64]
cmp ecx, 7
jae 0x7145b0aa
mov ecx, 8
jmp 0x7145b0af
mov ecx, 0xb
lea ebp, [eax + 2]
mov eax, dword [esp + 0x5c]
mov edx, dword [esp + 0x60]
mov ebx, dword [esp + 0x58]
mov esi, ecx
mov ecx, dword [esp + 0x54]
jmp 0x7145b217
mov eax, dword [esp + 0x80]
mov ecx, dword [eax + 0x78]
mov edx, dword [eax]
mov dword [esp], ecx
mov dword [esp + 4], edx
mov ecx, dword [esp + 0x30]
mov dword [esp + 8], ecx
call fcn.7145c2e0
mov eax, dword [esp + 0xc]
mov ecx, dword [esp + 0x40]
cmp ecx, 7
jae 0x7145b0fd
mov ecx, 7
jmp 0x7145b102
mov ecx, 0xa
cmp eax, 4
jae 0x7145b10b
mov edx, eax
jmp 0x7145b112
mov edx, eax
mov eax, 3
mov ebx, dword [esp + 0x80]
mov ebp, dword [ebx + 0x60]
mov esi, dword [ebx + 0x5c]
cmp eax, ebp
jae 0x7145b3b5
mov dword [esp + 0x6c], edx
mov dword [esp + 0x40], ecx
mov eax, dword [esi + eax*4]
mov ecx, dword [ebx]
mov dword [esp], eax
mov dword [esp + 4], ecx
call fcn.7145c700
mov eax, dword [esp + 8]
cmp eax, 4
jb 0x7145b1fe
mov edx, eax
shr eax, 1
lea ecx, [eax - 1]
cmp ecx, 0x20
sbb ebx, ebx
mov ebp, edx
and edx, 1
or edx, 2
shl edx, cl
and ebx, edx
mov dword [esp + 0x50], ebx
cmp ebp, 0xe
jae 0x7145b1ad
mov eax, dword [esp + 0x80]
mov edx, dword [eax]
mov esi, dword [eax + 0x68]
mov edi, dword [eax + 0x6c]
mov eax, dword [eax + 0x70]
mov dword [esp], edx
mov dword [esp + 4], esi
mov dword [esp + 8], edi
mov dword [esp + 0xc], eax
sub ebx, ebp
lea edx, [ebx - 1]
mov dword [esp + 0x10], edx
mov dword [esp + 0x14], ecx
call fcn.7145c840
mov eax, dword [esp + 0x18]
mov ecx, dword [esp + 0x50]
add eax, ecx
jmp 0x7145b1fe
mov ecx, dword [esp + 0x80]
mov edx, dword [ecx]
mov dword [esp], edx
add eax, 0xfffffffb
mov dword [esp + 4], eax
call fcn.7145cc00
mov eax, dword [esp + 8]
mov dword [esp + 0x4c], eax
mov ecx, dword [esp + 0x80]
mov edx, dword [ecx + 0x74]
mov ebx, dword [ecx]
mov dword [esp], edx
mov dword [esp + 4], ebx
call fcn.7145c7a0
mov eax, dword [esp + 0x4c]
shl eax, 4
mov ecx, dword [esp + 0x50]
add eax, ecx
add eax, dword [esp + 8]
test eax, eax
jl 0x7145b2cb
mov edi, dword [esp + 0x6c]
lea ebp, [edi + 2]
mov esi, dword [esp + 0x40]
mov edx, dword [esp + 0x20]
mov ebx, dword [esp + 0x3c]
mov ecx, eax
mov eax, dword [esp + 0x48]
mov dword [esp + 0x48], edx
mov dword [esp + 0x24], eax
mov dword [esp + 0x20], ebx
mov edi, dword [esp + 0x34]
cmp ecx, edi
setae al
mov edx, dword [esp + 0x38]
test edx, edx
sete bl
and eax, ebx
test al, al
jne 0x7145b2f3
mov eax, dword [esp + 0x80]
cmp dword [eax + 0x84], ecx
jbe 0x7145b2f3
mov dword [esp + 0x3c], ecx
mov dword [esp + 0x44], ebp
mov dword [esp + 0x40], esi
mov edx, dword [eax + 4]
mov dword [esp], edx
mov dword [esp + 4], ecx
mov dword [esp + 8], ebp
call fcn.7145aa70
mov eax, dword [esp + 0x80]
mov ecx, dword [eax + 4]
mov edx, dword [esp + 0x34]
mov ebx, dword [esp + 0x44]
add edx, ebx
mov ebx, dword [esp + 0x38]
adc ebx, 0
mov ebp, dword [ecx + 0x18]
lea esi, [ebp - 1]
mov edi, dword [ecx + 0x14]
cmp edi, esi
ja 0x7145b29d
lea esi, [edi + ebp - 1]
mov ebp, dword [ecx + 0xc]
mov edi, dword [ecx + 8]
cmp esi, ebp
jae 0x7145b2ea
mov ecx, edx
movzx edx, byte [esi + edi]
mov ebp, ebx
mov eax, edx
mov esi, dword [esp + 0x48]
mov edi, dword [esp + 0x24]
mov edx, dword [esp + 0x80]
mov ebx, ecx
mov ecx, dword [esp + 0x40]
jmp 0x7145acfa
cmp eax, 0xffffffff
jne 0x7145b354
mov eax, dword [esp + 0x80]
mov eax, dword [eax + 4]
mov dword [esp], eax
call fcn.7145a8f0
add esp, 0x7c
ret
mov eax, esi
mov ecx, ebp
call fcn.7141fdd0
mov eax, dword [0x71542554]
mov dword [esp + 0x70], eax
mov ecx, dword [0x71542550]
mov dword [esp + 0x28], ecx
lea edx, [0x7148b740]
mov dword [esp], edx
call fcn.713cbb70
mov eax, dword [esp + 4]
mov ecx, dword [esp + 0x28]
mov dword [eax], ecx
mov ecx, dword [0x71567460]
test ecx, ecx
jne 0x7145b342
mov ecx, dword [esp + 0x70]
mov dword [eax + 4], ecx
lea ecx, [0x714884a0]
mov dword [esp], ecx
mov dword [esp + 4], eax
call fcn.713f4340
lea edi, [eax + 4]
mov ecx, eax
mov eax, dword [esp + 0x70]
call fcn.7141fd40
mov eax, ecx
jmp 0x7145b330
mov eax, dword [0x71542554]
mov dword [esp + 0x74], eax
mov ecx, dword [0x71542550]
mov dword [esp + 0x2c], ecx
lea edx, [0x7148b740]
mov dword [esp], edx
call fcn.713cbb70
mov eax, dword [esp + 4]
mov ecx, dword [esp + 0x2c]
mov dword [eax], ecx
mov ecx, dword [0x71567460]
test ecx, ecx
jne 0x7145b3a3
mov ecx, dword [esp + 0x74]
mov dword [eax + 4], ecx
lea ecx, [0x714884a0]
mov dword [esp], ecx
mov dword [esp + 4], eax
call fcn.713f4340
lea edi, [eax + 4]
mov ecx, eax
mov eax, dword [esp + 0x74]
call fcn.7141fd40
mov eax, ecx
jmp 0x7145b391
mov ecx, ebp
call fcn.7141fdd0
mov eax, esi
call fcn.7141fdd0
mov eax, edx
mov ecx, ebp
call fcn.7141fdd0
mov eax, ebx
call fcn.7141fdd0
nop
call fcn.7141e910
jmp fcn.7145acc0