Function at 0x10158400
Capabilities:
Parse pe header

Disassembly:
sub esp, 0xa08
mov ecx, 0x280
xor eax, eax
mov edx, dword [0x107ab964]
push ebx
push ebp
push esi
push edi
lea edi, [esp + 0x18]
mov ebx, dword [esp + 0xa20]
mov ebp, dword [esp + 0xa1c]
push eax
rep stosd dword es:[edi], eax
mov edi, dword [esp + 0xa38]
lea eax, [esp + 0x14]
lea ecx, [esp + 0x1c]
push eax
mov esi, 0xa00
push ecx
push esi
push esi
push edi
push ebx
push ebp
push edx
call fcn.100253e0
add esp, 0x24
test eax, eax
je 0x10158836
cmp dword [esp + 0x10], esi
jne 0x10158836
mov eax, dword [esp + 0x18]
mov dword [esp + 0x14], 0
cmp eax, 0xe8
jne 0x1015853f
mov eax, dword [esp + 0x1c]
cmp eax, 0x242c8100
jne 0x101584eb
cmp dword [esp + 0x23], 0x4c48300
jne 0x10158836
cmp word [esp + 0x27], 0x448b
jne 0x10158836
cmp byte [esp + 0x29], 0x24
jne 0x10158836
cmp dword [esp + 0x2b], 0x35d006a
jne 0x10158836
cmp word [esp + 0x2f], 0xe9e8
jne 0x10158836
cmp word [esp + 0x33], 0
jne 0x10158836
mov eax, dword [esp + 0xa40]
mov ecx, dword [esp + 0x20]
sub eax, ecx
lea ecx, [eax + edi + 5]
mov dword [esp + 0x14], ecx
jmp 0x101585ba
cmp eax, 0x4c48300
jne 0x10158836
cmp word [esp + 0x20], 0x4c8b
jne 0x10158836
cmp word [esp + 0x24], 0xe98b
jne 0x10158836
cmp word [esp + 0x26], 0xed81
jne 0x10158836
cmp byte [esp + 0x2c], 0xe9
jne 0x10158836
mov edx, dword [esp + 0xa40]
mov eax, dword [esp + 0x28]
sub edx, eax
lea eax, [edx + edi + 5]
mov dword [esp + 0x14], eax
jmp 0x101585ba
cmp al, 0x68
jne 0x10158836
mov eax, dword [esp + 0x19]
mov edx, dword [esp + 0xa40]
cmp eax, edx
jbe 0x10158836
cmp byte [esp + 0x1d], 0xc3
jne 0x10158836
mov ecx, dword [esp + 0xa8c]
test ecx, ecx
je 0x10158586
pop edi
pop esi
pop ebp
mov dword [ecx], 1
mov eax, 1
pop ebx
add esp, 0xa08
ret
lea ecx, [esp + 0x10]
push 0
push ecx
lea ecx, [esp + 0x20]
push ecx
push esi
sub eax, edx
mov edx, dword [0x107ab964]
push esi
push eax
push ebx
push ebp
push edx
call fcn.100253e0
add esp, 0x24
test eax, eax
je 0x10158836
cmp dword [esp + 0x10], esi
jne 0x10158836
mov ebp, dword [esp + 0xa88]
xor ebx, ebx
xor esi, esi
cmp ebx, 7
je 0x10158826
cmp ebx, 6
ja case.default.0x101585d7
jmp dword [ebx*4 + 0x10158844]
mov al, byte [esp + esi + 0x18]
cmp al, 0x66
jne 0x101585f6
cmp word [esp + esi + 0x1b], 0x5a4d
jne 0x101585f6
cmp byte [esp + esi + 0x1d], 0x74
je 0x10158616
cmp al, 0x81
jne case.default.0x101585d7
cmp word [esp + esi + 0x1a], 0x5a4d
jne case.default.0x101585d7
cmp byte [esp + esi + 0x1e], 0x74
jne case.default.0x101585d7
mov ebx, 1
jmp case.default.0x101585d7
cmp byte [esp + esi + 0x18], 0x66
jne case.default.0x101585d7
cmp word [esp + esi + 0x1b], 0x4550
jne case.default.0x101585d7
cmp byte [esp + esi + 0x1d], 0x74
jne case.default.0x101585d7
mov ebx, 2
jmp case.default.0x101585d7
cmp byte [esp + esi + 0x18], 0x81
jne case.default.0x101585d7
cmp byte [esp + esi + 0x1f], 0x75
jne case.default.0x101585d7
cmp dword [esp + esi + 0x1b], 0x10000
jbe case.default.0x101585d7
mov ebx, 3
jmp case.default.0x101585d7
cmp byte [esp + esi + 0x18], 0xe8
jne case.default.0x101585d7
mov eax, dword [esp + esi + 0x19]
add eax, esi
test eax, eax
jle case.default.0x101585d7
cmp eax, 0x900
jae case.default.0x101585d7
mov ebx, 4
lea esi, [eax + 5]
jmp case.default.0x101585d7
mov eax, dword [esp + esi + 0x18]
cmp eax, 0x89284e8b
je 0x101586c2
cmp eax, 0x89285e8b
jne case.default.0x101585d7
test ebp, ebp
mov ebx, 5
je case.default.0x101585d7
mov edx, dword [esp + esi + 0x1d]
mov ecx, dword [esp + 0xa40]
mov eax, dword [esp + 0x14]
sub edx, ecx
add edx, eax
mov dword [ebp], 0
mov eax, edx
sub eax, edi
cmp eax, 0x9f0
jae 0x10158700
mov ecx, dword [esp + eax + 0x18]
mov dword [ebp], ecx
jmp case.default.0x101585d7
mov ecx, 0x280
xor eax, eax
lea edi, [esp + 0x18]
push eax
rep stosd dword es:[edi], eax
mov ecx, dword [esp + 0xa24]
lea eax, [esp + 0x14]
push eax
mov eax, dword [0x107ab964]
push ebp
push 4
push 4
push edx
mov edx, dword [esp + 0xa34]
push ecx
push edx
push eax
call fcn.100253e0
add esp, 0x24
test eax, eax
je 0x10158836
cmp dword [esp + 0x10], 4
jne 0x10158836
mov edi, dword [esp + 0xa34]
jmp case.default.0x101585d7
cmp byte [esp + esi + 0x18], 0x81
jne case.default.0x101585d7
cmp byte [esp + esi + 0x1a], 0x24
jne case.default.0x101585d7
cmp dword [esp + esi + 0x1b], 0xa0000020
jne case.default.0x101585d7
cmp byte [esp + esi + 0x1f], 0xc7
jne case.default.0x101585d7
cmp byte [esp + esi + 0x21], 0x4c
jne case.default.0x101585d7
mov eax, dword [esp + esi + 0x22]
test eax, eax
jne case.default.0x101585d7
cmp byte [esp + esi + 0x26], 0x81
jne case.default.0x101585d7
cmp byte [esp + esi + 0x28], 0x4c
jne case.default.0x101585d7
cmp dword [esp + esi + 0x29], 0x10000
jbe case.default.0x101585d7
mov ebx, 6
jmp case.default.0x101585d7
cmp byte [esp + esi + 0x18], 0xbb
jne case.default.0x101585d7
mov ecx, dword [esp + esi + 0x19]
cmp ecx, 0x1000
jae case.default.0x101585d7
mov ax, word [esp + esi + 0x1d]
cmp ax, 0xbd03
jne 0x101587e5
cmp word [esp + esi + 0x23], 0x4ba4
jne 0x101587e5
cmp byte [esp + esi + 0x25], 0x75
je 0x10158802
cmp ax, 0x858d
jne case.default.0x101585d7
cmp byte [esp + esi + 0x23], 0x96
jne case.default.0x101585d7
cmp word [esp + esi + 0x24], 0xbd03
jne case.default.0x101585d7
cmp byte [esp + esi + 0x2c], 0x75
jne case.default.0x101585d7
mov eax, dword [esp + 0xa84]
mov ebx, 7
test eax, eax
je case.default.0x101585d7
mov dword [eax], ecx
inc esi
cmp esi, 0x9e0
jb 0x101585c5
cmp ebx, 7
jne 0x10158836
pop edi
pop esi
pop ebp
mov eax, 1
pop ebx
add esp, 0xa08
ret
pop edi
pop esi
pop ebp
xor eax, eax
pop ebx
add esp, 0xa08
ret