Function at 0x10007040
Capabilities:
Read file on windows
Resolve function by parsing pe exports

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
sub esp, 0xcc
mov eax, dword [0x1001f170]
xor eax, esp
mov dword [esp + 0xc8], eax
mov eax, dword [ebp + 8]
mov ecx, dword [ebp + 0x14]
mov edx, dword [ebp + 0x18]
mov dword [esp + 0x1c], eax
mov eax, dword [ebp + 0xc]
mov dword [esp + 0x44], ecx
mov ecx, dword [ebp + 0x20]
push ebx
mov dword [esp + 0x34], eax
mov dword [esp + 0x18], eax
mov eax, dword [ebp + 0x10]
push esi
mov dword [esp + 0x68], edx
mov edx, dword [ebp + 0x24]
mov dword [esp + 0x58], ecx
xor ecx, ecx
mov esi, eax
push edi
mov dword [esp + 0x58], edx
mov dword [esp + 0x14], ecx
mov dword [esp + 0x44], ecx
mov dword [esp + 0x18], ecx
mov dword [esp + 0x2c], ecx
mov dword [esp + 0x38], ecx
xor edi, edi
mov dword [esp + 0x1c], ecx
mov dword [esp + 0x10], 1
mov dword [esp + 0x54], ecx
mov dword [esp + 0x40], ecx
mov dword [esp + 0x34], ecx
mov byte [esp + 0xd], cl
mov byte [esp + 0xf], cl
mov dword [esp + 0x48], ecx
mov dword [esp + 0x4c], ecx
mov dword [esp + 0x30], ecx
mov dword [esp + 0x60], ecx
mov byte [esp + 0xe], cl
mov dword [esp + 0x24], esi
mov dword [esp + 0x64], eax
mov dword [esp + 0x68], eax
cmp edi, ecx
jne 0x10007683
cmp dword [esp + 0x1c], 1
jne 0x100071c2
mov ecx, dword [esp + 0x58]
mov eax, dword [ecx]
cmp eax, 4
jae 0x10007123
mov edx, dword [esp + 0x5c]
mov ebx, dword [esp + 0x68]
inc eax
mov dword [ecx], eax
mov dword [edx + eax*8 - 8], ebx
mov eax, dword [ecx]
mov ecx, dword [esp + 0x10]
mov dword [edx + eax*8 - 4], ecx
mov dword [esp + 0x68], esi
mov ebx, dword [esp + 0x28]
mov edx, dword [esp + 0x64]
push ebx
push edx
call fcn.10009030
push ebx
push esi
mov dword [esp + 0x30], eax
call fcn.10009030
mov ecx, dword [esp + 0x30]
add esp, 0x10
sub eax, ecx
js 0x1000714f
cmp eax, 0x300
jl 0x100071b4
mov esi, dword [esp + 0x24]
push ebx
push esi
call fcn.10009030
push 0
push eax
mov eax, dword [ebx + 0x3140]
push eax
call fcn.10016cec
add esp, 0x14
cmp eax, 0xffffffff
jne 0x1000717f
call fcn.1000cfe0
cmp dword [eax], 0
jne 0x100072fe
mov ecx, dword [esp + 0x3c]
mov edx, dword [ebx + 0x3140]
push 0x400
inc ecx
push ecx
push edx
call fcn.10016b7a
add esp, 0xc
cmp eax, 0xffffffff
jne 0x100071ac
call fcn.1000cfe0
cmp dword [eax], 0
jne 0x100072fe
mov dword [esp + 0x64], esi
xor eax, eax
jmp 0x100071b8
mov esi, dword [esp + 0x24]
mov ecx, dword [esp + 0x3c]
add ecx, eax
mov dword [esp + 0x20], ecx
mov dword [esp + 0x10], 1
mov dword [esp + 0x1c], 0
test edi, edi
jne 0x10007658
cmp dword [esp + 0x1c], edi
jne 0x10007658
mov ecx, dword [esp + 0x10]
mov eax, dword [esp + 0x20]
lea edx, [esp + 0x98]
push edx
add eax, ecx
push eax
call fcn.10003be0
add esp, 8
test eax, eax
je 0x100072fe
cmp dword [esp + 0x98], edi
je 0x100072fe
mov bl, byte [esp + 0xb2]
movzx eax, bl
add eax, 0xfffffff1
cmp eax, 0xdc
ja case.0x10007233.16
movzx edx, byte [eax + 0x10007818]
jmp dword [edx*4 + 0x100077f8]
mov al, byte [esp + 0xb4]
cmp bl, 0x81
jne 0x1000725f
cmp al, 0x80
jb 0x1000724e
cmp al, 0x87
jbe 0x10007274
cmp al, 0xa8
jb 0x10007613
cmp al, 0xaf
jbe 0x10007274
jmp 0x10007613
cmp bl, 0xc1
jne 0x10007274
cmp al, 0x80
jb 0x10007613
cmp al, 0x8f
ja 0x10007613
cmp dword [esp + 0x18], 0
je 0x10007613
mov eax, dword [esp + 0x28]
mov edi, dword [esp + 0xb6]
push eax
push eax
push edi
call fcn.10009030
add esp, 8
push eax
call fcn.1000bb20
add esp, 8
test eax, eax
jne 0x10007613
mov dl, byte [esp + 0xb4]
cmp bl, 0x81
jne 0x100072c9
mov al, dl
cmp dl, 0xa8
jb 0x100072c1
add al, 0x58
mov byte [esp + 0xd], al
jmp 0x100072e1
sub al, 0x80
mov byte [esp + 0xd], al
jmp 0x100072e1
cmp bl, 0xc1
jne 0x100072dd
mov al, dl
cmp dl, 0x88
jb 0x100072c1
add al, 0x78
mov byte [esp + 0xd], al
jmp 0x100072e1
mov al, byte [esp + 0xd]
mov esi, dword [esp + 0x4c]
xor ecx, ecx
test esi, esi
jle 0x100072fe
jmp 0x100072f0
cmp al, byte [esp + ecx + 0xc8]
je 0x10007315
inc ecx
cmp ecx, esi
jl 0x100072f0
xor eax, eax
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0xc8]
xor ecx, esp
call fcn.1000bd45
mov esp, ebp
pop ebp
ret
mov eax, 1
mov dword [esp + 0x18], eax
mov dword [esp + 0x14], eax
movzx ax, bl
mov esi, 0x100
imul ax, si
movzx dx, dl
add ax, dx
movzx eax, ax
mov dword [esp + 0x48], eax
cmp bl, 0x81
jne 0x10007366
mov edx, dword [esp + 0xbe]
mov ecx, dword [esp + ecx*4 + 0x70]
mov esi, dword [esp + 0x24]
mov dword [esp + 0x40], edx
mov dword [esp + 0x54], ecx
mov dword [esp + 0x30], edi
mov dword [esp + 0x34], esi
jmp 0x10007613
cmp bl, 0xc1
jne 0x10007376
mov al, byte [esp + 0xbe]
mov byte [esp + 0xe], al
mov ecx, dword [esp + ecx*4 + 0x70]
mov esi, dword [esp + 0x24]
mov dword [esp + 0x54], ecx
mov dword [esp + 0x30], edi
mov dword [esp + 0x34], esi
jmp 0x10007613
mov al, byte [esp + 0xb4]
cmp al, 0xe8
jb 0x1000739e
cmp al, 0xef
jbe 0x100073ac
mov dl, al
add dl, 0x40
cmp dl, 7
ja 0x10007613
cmp dword [esp + 0x14], 0
je 0x10007613
cmp dword [esp + 0x18], 0
je 0x10007613
mov dl, al
add dl, 0x18
cmp dl, 7
ja 0x100073e2
movzx edi, byte [esp + 0xd]
movzx ecx, al
sub ecx, 0xe8
cmp edi, ecx
jne 0x10007613
mov cl, al
add cl, 0x40
cmp cl, 7
ja 0x10007401
movzx edi, byte [esp + 0xd]
movzx eax, al
sub eax, 0xc0
cmp edi, eax
jne 0x10007613
mov al, byte [esp + 0xbe]
cmp dl, 7
ja 0x10007415
cmp al, 4
jne 0x100072fe
cmp cl, 7
ja 0x10007422
cmp al, 0xfc
jne 0x100072fe
mov dword [esp + 0x44], 1
jmp 0x10007613
mov edx, 1
cmp dword [esp + 0x14], edx
jne 0x10007613
mov cl, byte [esp + 0xbe]
mov eax, 0x7f
cmp al, cl
sbb eax, eax
and eax, 0xfffffffe
add eax, edx
jns 0x10007457
neg cl
movzx ecx, cl
imul ecx, eax
add ecx, dword [esp + 0x98]
mov eax, dword [esp + 0x10]
add ecx, esi
lea ecx, [ecx + eax - 1]
cmp ecx, dword [esp + 0x34]
jne 0x100072fe
mov dword [esp + 0x2c], edx
jmp 0x10007613
mov al, byte [esp + 0xb3]
cmp al, 0x83
je 0x10007494
cmp al, 0x82
jne 0x10007613
mov eax, 1
cmp dword [esp + 0x14], eax
jne 0x10007613
mov ecx, dword [esp + 0x98]
mov edx, dword [esp + 0xbe]
add edx, ecx
mov ecx, dword [esp + 0x10]
add edx, esi
lea edx, [edx + ecx - 1]
cmp edx, dword [esp + 0x34]
jne 0x100072fe
mov dword [esp + 0x2c], eax
jmp 0x10007613
mov edx, 1
cmp dword [esp + 0x14], edx
jne 0x10007613
mov cl, byte [esp + 0xbe]
mov eax, 0x7f
cmp al, cl
sbb eax, eax
and eax, 0xfffffffe
add eax, edx
jns 0x100074f8
neg cl
movzx ecx, cl
imul ecx, eax
add ecx, dword [esp + 0x98]
mov eax, dword [esp + 0x10]
add ecx, esi
lea ecx, [ecx + eax - 1]
cmp ecx, dword [esp + 0x34]
jne 0x100072fe
mov dword [esp + 0x2c], edx
jmp 0x10007613
mov cl, byte [esp + 0xbe]
mov dl, 0x7f
cmp dl, cl
sbb eax, eax
and eax, 0xfffffffe
add eax, 1
mov dword [esp + 0x1c], 1
jns 0x10007541
neg cl
movzx ecx, cl
imul ecx, eax
add ecx, dword [esp + 0x98]
add ecx, dword [esp + 0x10]
lea esi, [esi + ecx - 1]
mov dword [esp + 0x24], esi
jmp 0x10007613
mov ecx, 1
cmp dword [esp + 0x14], ecx
jne 0x100075b5
cmp dword [esp + 0x18], ecx
jne 0x100075b5
cmp dword [esp + 0x44], ecx
jne 0x100075b5
cmp dword [esp + 0x2c], ecx
jne 0x100075b5
mov eax, dword [esp + 0x10]
mov edx, dword [esp + 0xbe]
add edx, eax
mov eax, dword [esp + 0x30]
lea esi, [esi + edx + 4]
mov dword [esp + 0x24], esi
cmp esi, eax
jb 0x100072fe
mov edx, dword [esp + 0x54]
add eax, edx
cmp esi, eax
ja 0x100072fe
mov dword [esp + 0x38], ecx
mov dword [esp + 0x60], esi
jmp 0x10007613
mov eax, dword [esp + 0xbe]
mov dword [esp + 0x1c], ecx
mov ecx, dword [esp + 0x98]
add eax, ecx
add eax, dword [esp + 0x10]
lea esi, [esi + eax - 1]
mov dword [esp + 0x24], esi
jmp 0x10007613
mov dl, bl
add dl, 0x48
cmp dl, 7
ja 0x10007613
mov eax, dword [esp + 0xbe]
test eax, 0xffff0000
jne 0x10007613
mov ecx, dword [esp + 0x4c]
add bl, 0x48
mov dword [esp + 0x18], 1
mov byte [esp + ecx + 0xc8], bl
mov dword [esp + ecx*4 + 0x70], eax
cmp ecx, 9
jae 0x10007613
inc ecx
mov dword [esp + 0x4c], ecx
mov eax, dword [esp + 0x98]
add dword [esp + 0x10], eax
cmp dword [esp + 0x14], 0
je 0x10007648
cmp dword [esp + 0x38], 0
je 0x10007648
cmp dword [esp + 0x2c], 0
je 0x10007648
cmp dword [esp + 0x18], 0
je 0x10007648
cmp dword [esp + 0x44], 0
je 0x10007648
mov edi, 1
jmp 0x1000764a
xor edi, edi
cmp dword [esp + 0x10], 0x100
jbe 0x100071d2
cmp dword [esp + 0x1c], 1
jne 0x10007665
inc byte [esp + 0xf]
jmp 0x1000766d
test edi, edi
je 0x100072fe
cmp byte [esp + 0xf], 3
ja 0x1000767b
xor ecx, ecx
jmp 0x100070e8
test edi, edi
je 0x100072fe
mov ebx, dword [esp + 0x28]
mov ecx, dword [esp + 0x30]
mov edi, dword [esp + 0x3c]
push ebx
push ecx
add edi, 0x5001
call fcn.10009030
mov edx, dword [ebx + 0x3140]
push 0
push eax
push edx
call fcn.10016cec
add esp, 0x14
cmp eax, 0xffffffff
jne 0x100076c1
call fcn.1000cfe0
cmp dword [eax], 0
jne 0x100072fe
mov esi, dword [esp + 0x54]
test esi, esi
jle 0x100072fe
lea eax, [esi + 7]
movzx ecx, ax
mov eax, dword [ebx + 0x3140]
push ecx
lea edx, [edi + 1]
push edx
push eax
call fcn.10016b7a
add esp, 0xc
cmp eax, 0xffffffff
jne 0x100076fa
call fcn.1000cfe0
cmp dword [eax], 0
jne 0x100072fe
add esi, 4
mov edx, 1
cmp esi, edx
mov dword [esp + 0x20], esi
jle 0x1000778c
mov ebx, dword [esp + 0x48]
movzx ecx, bx
shr ecx, 8
mov dword [esp + 0x38], ecx
jmp 0x10007728
mov ebx, dword [esp + 0x48]
mov ecx, dword [esp + 0x38]
sub ecx, 0x81
mov eax, dword [edi + edx]
je 0x10007767
sub ecx, 0x40
jne 0x1000777c
movzx esi, byte [esp + 0xe]
movzx ecx, bl
cmp ecx, 0x88
mov ebx, eax
mov ecx, 0x20
jb 0x1000775b
sub ecx, esi
shl ebx, cl
mov ecx, esi
shr eax, cl
add eax, ebx
jmp 0x1000777c
sub ecx, esi
shr ebx, cl
mov ecx, esi
shl eax, cl
add eax, ebx
jmp 0x1000777c
movzx ecx, bl
cmp ecx, 0xa8
jb 0x10007778
sub eax, dword [esp + 0x40]
jmp 0x1000777c
add eax, dword [esp + 0x40]
mov dword [edi + edx], eax
add edx, 4
cmp edx, dword [esp + 0x20]
jl 0x10007720
mov ebx, dword [esp + 0x28]
mov edx, dword [esp + 0x58]
mov eax, dword [esp + 0x5c]
mov ecx, dword [ebp + 0x1c]
push edx
mov edx, dword [esp + 0x70]
push eax
mov eax, dword [esp + 0x58]
push ecx
mov ecx, dword [esp + 0x3c]
push 0x6d
push edx
push eax
push ebx
push ecx
call fcn.10009030
mov esi, dword [esp + 0x80]
mov ecx, 1
sub ecx, eax
push ebx
push esi
mov dword [esp + 0x78], ecx
call fcn.10009030
mov ecx, dword [esp + 0x78]
mov edx, dword [esp + 0x50]
add esp, 0x10
add ecx, eax
push ecx
push esi
push edi
push edx
call fcn.100064d0
mov ecx, dword [esp + 0xfc]
add esp, 0x28
pop edi
pop esi
pop ebx
xor ecx, esp
call fcn.1000bd45
mov esp, ebp
pop ebp
ret