Function at 0xa079a8
Capabilities:
Parse pe header

Disassembly:
mov esi, dword [ebp + 8]
push edi
mov eax, dword [esi]
push eax
call fcn.00a01492
mov ecx, dword [esi]
mov ebx, eax
push ecx
call fcn.00a00097
mov edx, eax
mov eax, dword [esi]
add esp, 8
cmp bx, 4
mov di, word [eax + 0x1e]
mov dword [ebp + 8], edx
je 0x9f4bfc
push 3
push eax
call fcn.00a00e3f
add esp, 8
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
test dx, dx
je 0x9f4c1b
cmp dx, 0x12c
je 0x9f4c1b
cmp dx, 0x28
jne 0xa12448
push eax
call fcn.009f70f5
add esp, 4
test al, 1
jne 0xa12445
call fcn.00a0375e
test eax, eax
je 0xa12445
mov edx, dword [esi]
push 0x26
js 0xa0fd2e
jns 0x9f4c4c
cmp byte [eax - 0x70], 0xf
mov esp, ebx
mov al, 1
add byte [edx - 0x497ef09a], al
wait
jns 0xa0fd2e
and byte [esi + 0xf], 0x81
mov dh, 0x9b
add byte [eax], al
xchg edi, ecx
xchg ecx, edi
jo 0x9f4c64
inc esi
sub ecx, dword [edi]
and byte [esi + 0x3500009b], 0xcf
jo 0x9fe810
xor eax, 0x5850fcf
aaa
add dword [eax], eax
jne 0xa08377
je 0x9f4c78
int3
je 0xa08377
add byte [edx - 0x79770977], 0xbb
add byte [eax], al
add byte [esi - 0x77], ah
mov esi, 0xbc
test dx, dx
je 0xa039d2
jmp 0x9fc573
mov byte [esi + 0xbb], 0
mov ah, ah
mov word [esi + 0xbc], dx
jne 0x9fce1f
shl esi, 0x20
lea edi, [edi]
shl di, 0x20
je 0x9f9616
cpuid
nop
ret
je 0x9fce1f
fmul st(3)
ret
mov ecx, dword [esi]
cmp dx, 0x12c
je 0xa039d2
test di, di
jne 0xa0e4af
jne 0x9f8965
je 0x9fce2b
mov edx, dword [esi + 4]
shr dx, 0x40
mov ebx, dword [esi + 8]
mov eax, dword [eax + edx]
lea esi, [esi + 0xc]
cmp bp, bp
and dword [ebp + ebx], eax
jb 0xa0bb2e
xchg dx, ax
xchg dx, ax
mov esi, esi
jmp dword [esi]
shr cl, 0x40
shr ebx, 0x40
mov byte [esi + 0xba], cl
mov byte [esi + 0xbb], 0
call fcn.009fb3c0
invalid
ja 0xa0b8c1
jbe 0xa039ae
arpl word [ecx + 0xf], ax
xchg byte [0xd800007f], cl
lea ebx, [ebp - 0x7c039901]
pop es
shr cl, 0x40
js 0xa126a5
jbe 0xa0b8c1
fmul dword [ebp - 0x3990063]
jns 0xa039c9
test di, di
je 0xa039a3
and edi, 0xffff
shl edi, 8
lea ecx, [edi + 0xa29e10]
test ecx, ecx
je 0x9fc319
cmp byte [ecx], 0
je 0x9fc319
cmp dx, 0x12c
jne 0xa03a33
mov edx, dword [esi]
push 0
jmp 0xa03a0b
push edx
call fcn.00a00e3f
mov eax, dword [esi]
push 0x14
push eax
call fcn.009f5a01
mov ecx, dword [esi]
push 1
push ecx
call fcn.00a03d29
add esp, 0x18
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
mov eax, dword [esi]
js 0xa0441a
jns 0xa03a41
invalid
jns 0xa0441a
jne 0xa0f6c9
je 0xa03a53
nop
cpuid
ret 0x840f
je 0xa0f6c9
fmul st(0)
mov ebx, ebx
mov eax, dword [ebp + 0x4c]
mov ah, ah
ja 0x9fef7f
jbe 0xa03a6e
nop
cpuid
ret
jbe 0x9fef7f
xor al, 0xea
lea edx, [ebp - 4]
push 0
push edx
push 0x100
push eax
push 0xa0bbd9
ret
mov ecx, dword [esi]
push 0
push ecx
call fcn.00a00e3f
mov edx, dword [esi]
push 0x14
push edx
call fcn.009f5a01
mov eax, dword [esi]
push 1
push eax
call fcn.00a03d29
add esp, 0x18
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
mov ecx, dword [esi]
inc edi
mov word [ecx + 0x1e], di
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
mov eax, dword [esi]
push 7
push eax
call fcn.00a00e3f
add esp, 8
pop dword [esp - 4]
push ebx
push esi
jno 0x9f4bb2
jo 0xa079bb
jae 0xa079ec
sbb al, 0x72
jo 0x9f4bb2
fldz
test edi, esi
cmp edi, edi
inc eax
call 0x41903a37
mov edi, edi
xchg bh, ch
xchg ch, bh
mov dx, word [ebp + 0x10]
push eax
push esi
xchg cx, di
shl si, 0x20
mov di, di
xchg di, cx
mov byte [esi + 0xba], cl
shr edi, 0x40
shl bp, 0x20
ja 0x9f95f1
mov eax, eax
jbe 0xa083ac
xchg esi, eax
sub ebp, ecx
jbe 0x9f95f1
aas
adc bh, bh
inc dword [edx - 0x762d76cb]
shr cl, cl
xor byte [0xd289d289], 0xe9
jb 0xa083ae
invalid
xor edi, edi
mov eax, edi
and eax, 0xffff
shl eax, 8
add eax, 0xa29f10
je 0xa0b93a
cmp byte [eax], 0
je 0xa0b93a
cmp dx, 0x12c
je 0xa0695c
mov ecx, dword [esi]
lea edx, [ebp - 4]
push 0
push edx
push 0x100
jmp 0xa0b8fb
push ecx
push 0x100
push ecx
push 0x9c40244c
jmp 0xa0b909
push eax
call fcn.00a069ad
add esp, 0x20
test eax, eax
je 0xa0b937
mov eax, dword [esi]
jmp 0xa0b921
push eax
call fcn.00a089ea
add esp, 4
test ax, ax
je 0xa06988
mov edx, dword [ebp + 8]
inc edi
cmp di, 0x14
jb 0xa0b8c3
mov edx, dword [esi]
push 7
push 0x9f4899
ret
add dword [edi + ecx - 0x7b], esp
js 0xa0bb98
invalid
xchg edx, eax
xchg dx, bp
mov ecx, dword [ebp - 4]
push 0x9f4337
ret
mov esi, dword [esi]
lea eax, [ebp - 4]
push 0
and edi, 0xffff
push eax
push 0x100
shl edi, 8
push esi
push 0x100
push esi
lea ecx, [edi + 0xa29e10]
push 0x9c40244c
push ecx
call fcn.00a069ad
add esp, 0x20
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
push 0xa039d1
ret
ja 0xa02915
jbe 0xa0f6d3
jecxz 0xa0f718
jbe 0xa02915
add eax, 0xeb308b92
push esi
call fcn.00a0b108
add esp, 4
test al, 2
je 0xa0682c
push esi
call fcn.00a13410
jne 0x9f50c1
je 0xa0f704
dec ebx
xor ebp, dword [ebx + 0xf]
test byte [edi - 0x260001a7], dh
add edi, eax
je 0x9f50c1
fldenv [edi + 1]
invalid
mov byte [0xe1840fc2], al
aas
add byte [eax], al
std
outsd dx, dword [esi]
invalid
mov edx, dword [ebp + 8]
test dx, dx
je 0xa1245c
cmp dx, 0x12c
jne 0x9f6c04
call fcn.00a0c456
mov eax, 0xa29f10
test eax, eax
je 0xa06996
lahf
mov byte [0xfc08500], al
test byte [eax], ch
inc ebp
invalid
mov al, byte [0xa29f10]
test al, al
je 0xa06996
push 0
call fcn.009fca57
sub byte [ecx + esi*4 + 0x1c00a092], 8
mov al, byte [0x3800]
add byte [eax], bh
add byte [eax], al
add byte [esi], dh
jle 0xa12437
add byte [eax], ch
scasb al, byte es:[edi]
lahf
add bh, ah
push eax
lahf
add byte [eax], al
popal
add byte [eax + 0x3c], al
add byte [ecx], ah
add byte [eax], al
adc al, byte [eax]
add byte [eax], al
add byte [ecx], dl
add byte [eax], al
add byte [ecx], al
add byte [eax], bh
add byte [eax], al
add byte [edx + 0x7e], dh
lahf
add byte [esi], dh
jle 0xa12463
add byte [esi + 0x17], ch
mov eax, dword [0xa07e0900]
add bl, dl
and al, 0xa1
add byte [edi + 0x7e09ebb3], bh
mov al, byte [0xa1176e00]
add byte [esp + eax], dh