Function at 0x100a7340
Capabilities:
Parse pe header
Resolve function by parsing pe exports

Disassembly:
sub esp, 0x8a4
push ebx
push ebp
mov ebp, dword [esp + 0x8b4]
push esi
mov esi, dword [esp + 0x8b4]
push edi
push ebp
push esi
call fcn.100100f0
mov ebx, eax
add esp, 8
test ebx, ebx
mov dword [esp + 0x78], ebx
jle 0x100a7df1
cmp dword [esp + 0x8c0], ebx
jl 0x100a7df1
mov ecx, 0xa
xor eax, eax
lea edi, [esp + 0x8c]
lea edx, [esp + 0x80]
rep stosd dword es:[edi], eax
lea ecx, [esp + 0x8c]
mov dword [esp + 0x80], eax
push ecx
push edx
mov dword [esp + 0x8c], eax
push ebp
push esi
mov byte [esp + 0x98], al
call fcn.10010a00
add esp, 0x10
test eax, eax
je 0x100a7df1
mov edi, dword [esp + 0x8c0]
mov edx, dword [esp + 0x8b8]
lea eax, [esp + 0x10]
push 1
lea ecx, [esp + 0xb8]
push eax
push ecx
mov esi, 0x50
push 0x800
push esi
push ebx
push edi
push ebp
push edx
call fcn.100253e0
add esp, 0x24
test eax, eax
je 0x100a7df1
cmp dword [esp + 0x10], esi
jne 0x100a7df1
cmp byte [esp + 0xb4], 0xe9
jne 0x100a7460
mov eax, dword [esp + 0xb5]
lea ecx, [esp + 0x10]
push 1
lea edx, [esp + 0xb8]
push ecx
push edx
lea ebx, [ebx + eax + 5]
mov eax, dword [esp + 0x8c4]
push 0x800
push esi
push ebx
push edi
push ebp
push eax
mov dword [esp + 0x9c], ebx
call fcn.100253e0
add esp, 0x24
test eax, eax
je 0x100a7df1
cmp dword [esp + 0x10], esi
jne 0x100a7df1
push 0x12000
call dword [sym.imp.MSVCRT.dll_malloc]
mov esi, eax
add esp, 4
test esi, esi
je 0x100a7df1
mov ecx, 0x4800
xor eax, eax
mov edi, esi
push eax
rep stosd dword es:[edi], eax
mov ecx, dword [esp + 0x14]
push 0x300
push esi
lea edx, [esp + 0xc0]
push ecx
push edx
call fcn.10024c10
add esp, 0x14
test eax, eax
jl 0x100a7de7
xor edi, edi
xor edx, edx
test eax, eax
jle 0x100a7de7
lea ecx, [esi + 8]
cmp edi, 7
jge 0x100a74ee
cmp edi, 6
ja case.default.0x100a74c0
jmp dword [edi*4 + 0x100a7e00]
cmp dword [ecx + 8], 0x1c
jne case.default.0x100a74c0
cmp dword [ecx], 5
jne case.default.0x100a74c0
jmp 0x100a74e2
cmp dword [ecx + 8], 0x1c3
jne case.default.0x100a74c0
cmp dword [ecx], 1
jne case.default.0x100a74c0
inc edi
inc edx
add ecx, 0x60
cmp edx, eax
jl 0x100a74b6
cmp edi, 7
jne 0x100a7de7
cmp edx, 1
jl 0x100a7de7
lea eax, [edx + edx*2]
shl eax, 5
add eax, esi
mov ecx, dword [eax - 0x60]
mov edx, dword [eax - 0x58]
add ecx, edx
test ecx, ecx
mov dword [esp + 0x7c], ecx
jl 0x100a7de7
cmp dword [esp + 0x10], ecx
jl 0x100a7de7
mov eax, dword [eax - 0x3a]
add eax, ecx
add eax, ebx
js 0x100a7de7
mov ecx, dword [esp + 0x8c0]
cmp ecx, eax
jl 0x100a7de7
lea edx, [esp + 0x10]
push 1
push edx
lea edx, [esp + 0xbc]
push edx
push 0x800
push 0x800
push eax
mov eax, dword [esp + 0x8d0]
push ecx
push ebp
push eax
call fcn.100253e0
add esp, 0x24
test eax, eax
je 0x100a7de7
cmp dword [esp + 0x10], 0x800
jne 0x100a7de7
mov ecx, 0x4800
xor eax, eax
mov edi, esi
push eax
rep stosd dword es:[edi], eax
mov ecx, dword [esp + 0x14]
push 0x300
push esi
lea edx, [esp + 0xc0]
push ecx
push edx
call fcn.10024c10
add esp, 0x14
test eax, eax
jl 0x100a7de7
xor ebp, ebp
lea ebx, [eax - 3]
cmp ebx, ebp
mov dword [esp + 0x70], ebp
mov dword [esp + 0x1c], ebp
mov dword [esp + 0x24], ebp
mov dword [esp + 0x74], ebx
jle 0x100a7c68
lea ebp, [esi + 0x64]
lea eax, [esi + 0x2e]
mov dword [esp + 0x48], ebp
lea ebp, [esi + 0x70]
mov dword [esp + 0x14], ebp
lea ebp, [esi + 0x68]
mov dword [esp + 0x20], ebp
lea ebp, [esi + 0x8e]
mov dword [esp + 0x40], ebp
lea ebp, [esi + 0x14e]
mov dword [esp + 0x38], ebp
lea ebp, [esi + 0x15b]
mov dword [esp + 0x30], ebp
lea ebp, [esi + 0x156]
mov dword [esp + 0x2c], ebp
lea ebp, [esi + 0x141]
mov dword [esp + 0x64], ebp
lea ebp, [esi + 0x128]
mov dword [esp + 0x54], ebp
lea ebp, [esi + 0x130]
mov dword [esp + 0x28], ebp
lea ebp, [esi + 0x103]
mov dword [esp + 0x4c], ebp
lea ebp, [esi + 0xf6]
mov dword [esp + 0x60], ebp
lea ebp, [esi + 0xe1]
mov dword [esp + 0x44], ebp
lea ebp, [esi + 0xc8]
mov dword [esp + 0x58], ebp
lea ebp, [esi + 0xd0]
mov dword [esp + 0x3c], ebp
lea ebp, [esi + 0x9b]
mov dword [esp + 0x50], ebp
lea ebp, [esi + 0x96]
mov dword [esp + 0x34], ebp
lea ebp, [esi + 0x81]
mov dword [esp + 0x5c], ebp
lea ebp, [esi + 0x43]
lea ebx, [esi + 0x3b]
mov dword [esp + 0x18], eax
mov dword [esp + 0x68], ebp
mov ebp, dword [esp + 0x1c]
mov dword [esp + 0x6c], ebx
lea edx, [esi + 0x36]
lea ecx, [esi + 0x21]
lea edi, [esi + 8]
lea eax, [esi + 0x10]
jmp 0x100a76a3
mov ebx, dword [esp + 0x6c]
cmp ebp, 5
jge 0x100a7c64
cmp ebp, 4
ja case.default.0x100a76b5
jmp dword [ebp*4 + 0x100a7e1c]
cmp dword [eax], 0xd
jne case.default.0x100a76b5
cmp dword [ecx], 0x8d
jne case.default.0x100a76b5
cmp dword [edx], 0x8f
jne case.default.0x100a76b5
cmp dword [ebx], 0xffff0000
jne case.default.0x100a76b5
mov dword [esp + 0x1c], 1
jmp case.default.0x100a76b5
cmp dword [eax], 0x37
jne case.default.0x100a76b5
cmp dword [edi], 5
jne case.default.0x100a76b5
cmp dword [ecx], 0x8d
jne case.default.0x100a76b5
cmp dword [edx], 0x8f
jne case.default.0x100a76b5
cmp word [ebx], 0x5a4d
jne case.default.0x100a76b5
mov dword [esp + 0x1c], 2
jmp case.default.0x100a76b5
cmp dword [eax], 0x37
jne case.default.0x100a76b5
cmp dword [edi], 6
jne case.default.0x100a76b5
cmp dword [ecx], 0x8d
jne case.default.0x100a76b5
cmp dword [edx], 0x8f
jne case.default.0x100a76b5
cmp dword [ebx], 0x4550
jne case.default.0x100a76b5
mov dword [esp + 0x1c], 3
jmp case.default.0x100a76b5
cmp dword [eax], 0x118
jne case.default.0x100a76b5
cmp dword [edi], 3
jne 0x100a79a8
cmp dword [ecx], 0x8c
jne 0x100a79a8
cmp dword [edx], 0x8d
jne 0x100a79a8
mov ebp, dword [esp + 0x68]
cmp dword [ebp], 0x2a
jne 0x100a79a8
mov ebp, dword [esp + 0x14]
cmp dword [ebp], 6
jne 0x100a79a8
mov ebp, dword [esp + 0x20]
cmp dword [ebp], 3
jne 0x100a79a8
mov ebp, dword [esp + 0x5c]
cmp dword [ebp], 0x8c
jne 0x100a79a8
mov ebp, dword [esp + 0x34]
cmp dword [ebp], 0x8d
jne 0x100a79a8
mov ebp, dword [esp + 0x50]
cmp byte [ebp], 4
jne 0x100a79a8
mov ebp, dword [esp + 0x3c]
cmp dword [ebp], 0x118
jne 0x100a79a8
mov ebp, dword [esp + 0x58]
cmp dword [ebp], 3
jne 0x100a79a8
mov ebp, dword [esp + 0x44]
cmp dword [ebp], 0x8c
jne 0x100a79a8
mov ebp, dword [esp + 0x60]
cmp dword [ebp], 0x8d
jne 0x100a79a8
mov ebp, dword [esp + 0x4c]
cmp dword [ebp], 0x2a
jne 0x100a79a8
mov ebp, dword [esp + 0x28]
cmp dword [ebp], 6
jne 0x100a79a8
mov ebp, dword [esp + 0x54]
cmp dword [ebp], 3
jne 0x100a79a8
mov ebp, dword [esp + 0x64]
cmp dword [ebp], 0x8c
jne 0x100a79a8
mov ebp, dword [esp + 0x2c]
cmp dword [ebp], 0x8d
jne 0x100a79a8
mov ebp, dword [esp + 0x30]
cmp byte [ebp], 0x44
jne 0x100a79a8
mov ebx, dword [esp + 0x38]
mov ebp, dword [esp + 0x40]
mov ebx, dword [ebx]
cmp ebx, dword [ebp]
jne 0x100a79a4
mov ebp, dword [esp + 0x24]
mov ebx, dword [esp + 0x68]
add ebp, 3
mov dword [esp + 0x1c], 4
mov dword [esp + 0x24], ebp
mov ebp, 0x120
add ebx, ebp
add eax, ebp
mov dword [esp + 0x68], ebx
mov ebx, dword [esp + 0x5c]
add ebx, ebp
add edi, ebp
mov dword [esp + 0x5c], ebx
mov ebx, dword [esp + 0x34]
add ebx, ebp
add ecx, ebp
mov dword [esp + 0x34], ebx
mov ebx, dword [esp + 0x50]
add ebx, ebp
add edx, ebp
mov dword [esp + 0x50], ebx
mov ebx, dword [esp + 0x3c]
add ebx, ebp
mov dword [esp + 0x3c], ebx
mov ebx, dword [esp + 0x58]
add ebx, ebp
mov dword [esp + 0x58], ebx
mov ebx, dword [esp + 0x44]
add ebx, ebp
mov dword [esp + 0x44], ebx
mov ebx, dword [esp + 0x60]
add ebx, ebp
mov dword [esp + 0x60], ebx
mov ebx, dword [esp + 0x4c]
add ebx, ebp
mov dword [esp + 0x4c], ebx
mov ebx, dword [esp + 0x28]
add ebx, ebp
mov dword [esp + 0x28], ebx
mov ebx, dword [esp + 0x54]
add ebx, ebp
mov dword [esp + 0x54], ebx
mov ebx, dword [esp + 0x64]
add ebx, ebp
mov dword [esp + 0x64], ebx
mov ebx, dword [esp + 0x2c]
add ebx, ebp
mov dword [esp + 0x2c], ebx
mov ebx, dword [esp + 0x30]
add ebx, ebp
mov dword [esp + 0x30], ebx
mov ebx, dword [esp + 0x38]
add ebx, ebp
mov dword [esp + 0x38], ebx
mov ebx, dword [esp + 0x40]
add ebx, ebp
mov dword [esp + 0x40], ebx
mov ebx, dword [esp + 0x20]
add ebx, ebp
mov dword [esp + 0x20], ebx
mov ebx, dword [esp + 0x14]
add ebx, ebp
mov dword [esp + 0x14], ebx
mov ebx, dword [esp + 0x48]
add ebx, ebp
mov dword [esp + 0x48], ebx
mov ebx, dword [esp + 0x6c]
add ebx, ebp
mov ebp, dword [esp + 0x18]
add ebp, 0x120
mov dword [esp + 0x18], ebp
jmp 0x100a79a8
mov ebx, dword [esp + 0x6c]
cmp dword [eax], 0x118
jne case.default.0x100a76b5
cmp dword [edi], 3
jne case.default.0x100a76b5
cmp dword [ecx], 0x8c
jne case.default.0x100a76b5
cmp dword [edx], 0x8d
jne case.default.0x100a76b5
cmp byte [ebx], 0x48
jne case.default.0x100a76b5
jmp 0x100a7b4b
mov ebp, dword [esp + 0x70]
test ebp, ebp
je 0x100a7b29
cmp dword [eax], 0x37
jne 0x100a7b29
mov ebp, dword [esp + 0x20]
cmp dword [ebp], 2
jne 0x100a7b29
cmp dword [ecx], 0x8c
jne 0x100a7b29
mov ebp, dword [esp + 0x14]
cmp dword [ebp], 0xe5
je 0x100a7a2d
mov ebp, dword [esp + 0x48]
cmp byte [ebp], 0x73
jne 0x100a7b29
mov ebp, dword [esp + 0x24]
add eax, 0x60
inc ebp
add edi, 0x60
mov dword [esp + 0x24], ebp
mov ebp, dword [esp + 0x68]
add ebp, 0x60
add ecx, 0x60
mov dword [esp + 0x68], ebp
mov ebp, dword [esp + 0x5c]
add ebp, 0x60
add edx, 0x60
mov dword [esp + 0x5c], ebp
mov ebp, dword [esp + 0x34]
add ebp, 0x60
add ebx, 0x60
mov dword [esp + 0x34], ebp
mov ebp, dword [esp + 0x50]
add ebp, 0x60
mov dword [esp + 0x1c], 5
mov dword [esp + 0x50], ebp
mov ebp, dword [esp + 0x3c]
add ebp, 0x60
mov dword [esp + 0x3c], ebp
mov ebp, dword [esp + 0x58]
add ebp, 0x60
mov dword [esp + 0x58], ebp
mov ebp, dword [esp + 0x44]
add ebp, 0x60
mov dword [esp + 0x44], ebp
mov ebp, dword [esp + 0x60]
add ebp, 0x60
mov dword [esp + 0x60], ebp
mov ebp, dword [esp + 0x4c]
add ebp, 0x60
mov dword [esp + 0x4c], ebp
mov ebp, dword [esp + 0x28]
add ebp, 0x60
mov dword [esp + 0x28], ebp
mov ebp, dword [esp + 0x54]
add ebp, 0x60
mov dword [esp + 0x54], ebp
mov ebp, dword [esp + 0x64]
add ebp, 0x60
mov dword [esp + 0x64], ebp
mov ebp, dword [esp + 0x2c]
add ebp, 0x60
mov dword [esp + 0x2c], ebp
mov ebp, dword [esp + 0x30]
add ebp, 0x60
mov dword [esp + 0x30], ebp
mov ebp, dword [esp + 0x38]
add ebp, 0x60
mov dword [esp + 0x38], ebp
mov ebp, dword [esp + 0x40]
add ebp, 0x60
mov dword [esp + 0x40], ebp
mov ebp, dword [esp + 0x20]
add ebp, 0x60
mov dword [esp + 0x20], ebp
mov ebp, dword [esp + 0x14]
add ebp, 0x60
mov dword [esp + 0x14], ebp
mov ebp, dword [esp + 0x48]
add ebp, 0x60
mov dword [esp + 0x48], ebp
mov ebp, dword [esp + 0x18]
add ebp, 0x60
mov dword [esp + 0x18], ebp
cmp dword [eax], 0x118
jne case.default.0x100a76b5
cmp dword [edi], 3
jne case.default.0x100a76b5
cmp dword [ecx], 0x8c
jne case.default.0x100a76b5
cmp dword [edx], 0x8d
jne case.default.0x100a76b5
cmp byte [ebx], 0x48
jne case.default.0x100a76b5
mov ebp, dword [esp + 0x18]
mov ebp, dword [ebp]
mov dword [esp + 0x70], ebp
mov ebp, dword [esp + 0x24]
add ebx, 0x60
inc ebp
mov dword [esp + 0x6c], ebx
mov dword [esp + 0x24], ebp
mov ebp, dword [esp + 0x68]
add ebp, 0x60
mov ebx, dword [esp + 0x18]
mov dword [esp + 0x68], ebp
mov ebp, dword [esp + 0x5c]
add ebp, 0x60
add ebx, 0x60
mov dword [esp + 0x5c], ebp
mov ebp, dword [esp + 0x34]
add ebp, 0x60
mov dword [esp + 0x18], ebx
mov dword [esp + 0x34], ebp
mov ebp, dword [esp + 0x50]
add ebp, 0x60
mov ebx, dword [esp + 0x74]
mov dword [esp + 0x50], ebp
mov ebp, dword [esp + 0x3c]
add ebp, 0x60
add eax, 0x60
mov dword [esp + 0x3c], ebp
mov ebp, dword [esp + 0x58]
add ebp, 0x60
add edi, 0x60
mov dword [esp + 0x58], ebp
mov ebp, dword [esp + 0x44]
add ebp, 0x60
add ecx, 0x60
mov dword [esp + 0x44], ebp
mov ebp, dword [esp + 0x60]
add ebp, 0x60
add edx, 0x60
mov dword [esp + 0x60], ebp
mov ebp, dword [esp + 0x4c]
add ebp, 0x60
mov dword [esp + 0x4c], ebp
mov ebp, dword [esp + 0x28]
add ebp, 0x60
mov dword [esp + 0x28], ebp
mov ebp, dword [esp + 0x54]
add ebp, 0x60
mov dword [esp + 0x54], ebp
mov ebp, dword [esp + 0x64]
add ebp, 0x60
mov dword [esp + 0x64], ebp
mov ebp, dword [esp + 0x2c]
add ebp, 0x60
mov dword [esp + 0x2c], ebp
mov ebp, dword [esp + 0x30]
add ebp, 0x60
mov dword [esp + 0x30], ebp
mov ebp, dword [esp + 0x38]
add ebp, 0x60
mov dword [esp + 0x38], ebp
mov ebp, dword [esp + 0x40]
add ebp, 0x60
mov dword [esp + 0x40], ebp
mov ebp, dword [esp + 0x20]
add ebp, 0x60
mov dword [esp + 0x20], ebp
mov ebp, dword [esp + 0x14]
add ebp, 0x60
mov dword [esp + 0x14], ebp
mov ebp, dword [esp + 0x48]
add ebp, 0x60
mov dword [esp + 0x48], ebp
mov ebp, dword [esp + 0x24]
cmp ebp, ebx
mov ebp, dword [esp + 0x1c]
jl 0x100a769f
jmp 0x100a7c68
mov ebx, dword [esp + 0x74]
push esi
call dword [sym.imp.MSVCRT.dll_free]
add esp, 4
cmp ebp, 5
jne 0x100a7df1
cmp dword [esp + 0x24], ebx
jge 0x100a7df1
mov eax, dword [esp + 0x70]
test eax, eax
je 0x100a7df1
mov ecx, dword [esp + 0x78]
mov edx, dword [esp + 0x7c]
lea eax, [edx + ecx]
test eax, eax
jl 0x100a7df1
mov ecx, dword [esp + 0x8c0]
cmp ecx, eax
jl 0x100a7df1
lea edx, [esp + 0x10]
mov esi, dword [esp + 0x8bc]
push 1
mov edi, dword [esp + 0x8bc]
push edx
lea edx, [esp + 0xbc]
push edx
push 0x800
push 0x800
push eax
push ecx
push esi
push edi
call fcn.100253e0
add esp, 0x24
test eax, eax
je 0x100a7df1
cmp dword [esp + 0x10], 0x800
jne 0x100a7df1
mov eax, dword [esp + 0xb8]
mov ecx, dword [esp + 0xf8]
mov edx, dword [esp + 0x98]
add eax, ecx
add eax, edx
push eax
push esi
push edi
call fcn.1000fe50
mov ecx, dword [esp + 0xac]
add esp, 0xc
cmp eax, ecx
jb 0x100a7df1
mov edx, dword [esp + 0x9c]
add edx, ecx
cmp eax, edx
ja 0x100a7df1
mov ecx, dword [esp + 0x8c4]
test ecx, ecx
je 0x100a7d4d
mov dword [ecx], eax
mov eax, dword [esp + 0x98]
mov ecx, dword [esp + 0xb8]
add eax, ecx
push eax
push esi
push edi
call fcn.1000fe50
mov ecx, dword [esp + 0xac]
add esp, 0xc
cmp eax, ecx
jb 0x100a7df1
mov edx, dword [esp + 0x9c]
add edx, ecx
cmp eax, edx
ja 0x100a7df1
mov edx, dword [esp + 0xf8]
cmp edx, 0x800
jg 0x100a7df1
cmp edx, 0x300
jle 0x100a7df1
mov ecx, dword [esp + 0xfc]
add ecx, edx
cmp ecx, 0x2000
jle 0x100a7df1
cmp ecx, 0xa000
jg 0x100a7df1
mov ebx, dword [esp + 0x8c8]
test ebx, ebx
je 0x100a7dd7
mov edi, dword [esp + 0x8cc]
test edi, edi
je 0x100a7dd7
mov esi, dword [esp + 0x8d0]
test esi, esi
je 0x100a7dd7
mov dword [ebx], eax
mov dword [edi], edx
mov dword [esi], ecx
pop edi
pop esi
pop ebp
mov eax, 1
pop ebx
add esp, 0x8a4
ret
push esi
call dword [sym.imp.MSVCRT.dll_free]
add esp, 4
pop edi
pop esi
pop ebp
xor eax, eax
pop ebx
add esp, 0x8a4
ret