Function at 0x165e431
Capabilities:
Access peb ldr_data
Check for peb beingdebugged flag
Get process filename
Parse pe header

Disassembly:
push eax
jmp 0x165cc19
int3
add byte [eax], al
xlatb
push edi
invalid
call 0x165b192
jnp 0x165cbeb
jp 0x165cbeb
dec ebx
jmp 0x165b12d
pop eax
sub eax, 0xe6b06c60
add eax, 0xe6b05ccc
xchg dword [esp + 4], eax
popfd
push dword fs:[0]
ja 0x165ccc8
jmp 0x165ccc8
push eax
pushal
pushfd
not ax
pop ecx
mov esi, 0x90d025e
xchg dh, ch
bswap edi
mov al, byte [esp]
mov ax, 0x6000
mov si, 0x5583
mov esi, 0x19e07090
setae ch
bswap edx
setae ch
popal
pushal
push dword [esp + 0x18]
mov byte [esp + 6], ah
push bx
pop word [esp + 0x11]
push edx
pop dword [esp + 0x16]
push word [esp + 0xf]
pop dword [esp + 0xe]
pop dword [esp + 0x18]
push word [esp + 0x10]
lea esp, [esp + 0x20]
pushfd
jno 0x165b18d
jo 0x165b18d
mov dh, 0x8b
xchg edx, eax
pop edi
pop dword fs:[0]
lea esp, [esp + 4]
jmp 0x138187e
push eax
jmp 0x165e15c
mov dword fs:[0], esp
pushal
mov ax, 0x54ce
mov edi, dword [esp]
mov al, ch
mov si, word [esp]
not edi
mov bp, word [esp]
mov ch, bh
mov si, bp
mov di, word [esp]
mov cl, ah
mov edx, 0x40b87679
mov ch, 0xa0
mov si, bp
popal
push eax
push dword [esp + 3]
pop word [esp + 1]
lea esp, [esp + 2]
push cx
lea esp, [esp]
mov dword [esp], esp
push word [esp + 1]
mov word [esp + 5], di
pop word [esp + 2]
push dword [esp + 2]
pop dword [esp]
mov dword [esp], ecx
lea esp, [esp + 2]
lea esp, [esp + 4]
jmp 0x165a054
call 0x165e00a
pop eax
sub eax, 0xb4e3724e
add eax, 0xb4e330f5
xchg dword [esp + 4], eax
popfd
push dword fs:[0]
mov dword fs:[0], esp
pushal
push sp
not al
setp dl
pop ax
mov cx, dx
mov al, cl
mov al, cl
mov bp, di
bswap ax
pushal
lea esp, [esp + 0x20]
popal
push si
push esp
push dx
push cx
push word [esp + 6]
lea esp, [esp + 3]
mov dword [esp + 2], esp
lea esp, [esp + 1]
lea esp, [esp + 8]
jmp 0x165e9ba
push eax
pushal
pushfd
xchg si, cx
not si
mov word [esp], sp
lea esp, [esp + 2]
lea edi, [edx + 0x7215]
lea esp, [esp + 2]
popal
pushfd
mov byte [esp], dh
push word [esp + 2]
pushal
lea esp, [esp + 0xb]
pop dword [esp + 0x11]
lea esp, [esp + 3]
lea esp, [esp + 0x14]
pushfd
jbe 0x165e005
ja 0x165e005
sahf
and esi, dword [ebx - 0x42b7da2a]
push dword [esp + 0xb]
mov word [esp + 0xb], bx
bswap bx
mov esi, dword [esp + 0x13]
lea esp, [esp + 0x1c]
popal
pushal
push word [esp + 3]
push word [esp + 0xf]
push esp
push word [esp + 0xf]
mov dword [esp + 0x23], ebx
push dword [esp + 0xe]
pop word [esp + 0x28]
push dword [esp + 1]
lea esp, [esp + 0x30]
call fcn.013947ce
popal
jmp 0x1659ed8
movzx ebx, word [eax + 0x3c]
add ebx, eax
cmp word [ebx], 0x4550
je 0x165cc94
jmp 0x165e287
call 0x165e27c
pop eax
xor ax, ax
cmp word [eax], 0x5a4d
je 0x165e23c
sub eax, 0x10000
jmp 0x165e280
call 0x165e431
push ebx
popal
outsb dx, byte gs:[esi]
imul ebp, dword [bp + 0x65], 0x6f725020
je 0x165e489
arpl word [edi + ebp*2 + 0x72], si
and byte [esi + 0x31], dh
aaa
xor byte cs:[ebp + 0x53042464], cl
mov word [esp], bp
push word [esp + 2]
mov word [esp + 2], si
push word [esp + 5]
mov byte [esp + 1], ah
push word [esp + 5]
lea esp, [esp + 2]
mov dword [esp + 4], eax
pushal
push ebx
mov dword [esp + 0x17], edi
pop word [esp + 0x1c]
mov word [esp + 0x13], cx
mov word [esp + 0x1a], bx
pushfd
mov word [esp + 0x14], di
lea esp, [esp + 2]
mov dword [esp + 0x24], ecx
pushfd
push word [esp + 1]
push dword [esp + 3]
mov dword [esp + 4], esp
and al, 4
mov dword [esp + 5], edx
pop word [esp + 1]
pop dword [esp]
mov dword [esp + 0x24], edx
push cx
push word [esp + 1]
pushfd
lea esp, [esp + 6]
pushal
pop word [esp + 0xa]
mov dword [esp + 0x17], eax
pop dword [esp + 6]
lea esp, [esp + 0x12]
pushal
push di
lea esp, [esp + 0x20]
mov dword [esp + 0x2c], ebx
pushfd
pushfd
lea esp, [esp + 4]
mov byte [esp + 2], bl
pop word [esp]
push word [esp]
pop word [esp]
lea esp, [esp + 2]
mov dword [esp + 0x28], esp
pushal
push word [esp + 0x1d]
pushfd
push word [esp + 0x24]
pop word [esp + 0x16]
pop dword [esp + 0x1b]
pop dword [esp + 0x19]
push dword [esp + 0xc]
pop dword [esp + 7]
push word [esp + 0xe]
mov dword [esp + 0x44], ebp
push esi
mov word [esp], di
push word [esp + 2]
mov dword [esp], ebp
push sp
mov word [esp + 2], cx
push word [esp + 3]
push word [esp + 2]
lea esp, [esp + 6]
mov word [esp + 3], di
lea esp, [esp + 2]
mov dword [esp + 0x44], esi
push si
push word [esp + 1]
pop word [esp]
lea esp, [esp + 1]
mov byte [esp], al
lea esp, [esp + 1]
mov dword [esp + 0x40], edi
lea esp, [esp + 0x40]
mov eax, dword fs:[0x30]
add byte [eax], al
mov eax, dword [eax + 0xc]
mov eax, dword [eax + 0x1c]
mov eax, dword [eax]
mov eax, dword [eax + 8]
push eax
jo 0x165e277
jno 0x165e277
out dx, al
jae 0x165e55e
xchg byte [ebp + 0x18], dh
leave
dec edi
fistp qword [edx - 0x48cf94b7]
daa
inc edx
mov cl, 0xec
invalid
int3