Function at 0x10015f80
Capabilities:
Parse pe header

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
sub esp, 0x5c
mov eax, dword [ebp + 0xc]
mov edx, dword [ebp + 8]
mov dword [ebp - 0x14], eax
mov dword [ebp - 0x18], edx
mov dword [ebp - 0x1c], ecx
mov eax, dword [ebp - 0x1c]
mov dword [ebp - 0x28], eax
mov eax, dword [0x101537c8]
mov ecx, dword [0x101537c4]
mov edx, eax
add edx, 0x3ada57a4
sub edx, 1
sub edx, 0x3ada57a4
imul eax, edx
and eax, 1
cmp eax, 0
sete bl
cmp ecx, 0xa
setl bh
mov al, bl
and al, bh
xor bl, bh
or al, bl
test al, 1
jne 0x10015feb
jmp 0x1001682c
mov eax, 0
mov ecx, 0x40
mov edx, dword [ebp - 0x18]
mov esi, dword [ebp - 0x14]
mov edi, dword [ebp - 0x28]
add edi, 0x48
mov dword [esp], edi
mov dword [esp + 4], 0
mov dword [esp + 8], 0x40
mov dword [esp + 0xc], esi
mov dword [ebp - 0x2c], eax
mov dword [ebp - 0x30], ecx
call edx
mov ah, 1
mov ecx, dword [0x101537c8]
mov edx, dword [0x101537c4]
mov esi, ecx
add esi, 0x67bb0a2d
sub esi, 1
sub esi, 0x67bb0a2d
imul ecx, esi
and ecx, 1
cmp ecx, 0
sete bl
cmp edx, 0xa
setl bh
mov cl, bl
xor cl, 1
mov ch, bh
xor ch, 1
xor ah, 1
mov dl, cl
and dl, 1
and bl, ah
mov dh, ch
and dh, 1
and bh, ah
or dl, bl
or dh, bh
xor dl, dh
or cl, ch
xor cl, 1
or ah, 1
and cl, ah
or dl, cl
test dl, 1
mov byte [ebp - 0x31], al
jne 0x1001609e
jmp 0x1001682c
mov al, byte [ebp - 0x31]
test al, 1
jne 0x1001617d
jmp 0x100160ae
mov eax, dword [0x101537c8]
mov ecx, dword [0x101537c4]
mov edx, eax
sub edx, 0xfd904c82
sub edx, 1
add edx, 0xfd904c82
imul eax, edx
and eax, 1
cmp eax, 0
sete bl
cmp ecx, 0xa
setl bh
mov al, bl
and al, bh
xor bl, bh
or al, bl
test al, 1
jne 0x100160fb
jmp 0x1001686c
mov al, 1
mov dword [ebp - 0x10], 0x1e
mov ecx, dword [0x101537c8]
mov edx, dword [0x101537c4]
mov esi, ecx
sub esi, 0xddea258a
sub esi, 1
add esi, 0xddea258a
imul ecx, esi
and ecx, 1
cmp ecx, 0
sete ah
cmp edx, 0xa
setl bl
mov bh, ah
xor bh, 1
mov cl, bl
xor cl, 1
xor al, 1
mov ch, bh
and ch, 1
and ah, al
mov dl, cl
and dl, 1
and bl, al
or ch, ah
or dl, bl
xor ch, dl
or bh, cl
xor bh, 1
or al, 1
and bh, al
or ch, bh
test ch, 1
jne 0x10016178
jmp 0x1001686c
jmp 0x10016727
jmp 0x10016182
mov eax, dword [0x101537c8]
mov ecx, dword [0x101537c4]
mov edx, eax
sub edx, 0x88131441
sub edx, 1
add edx, 0x88131441
imul eax, edx
and eax, 1
cmp eax, 0
sete bl
cmp ecx, 0xa
setl bh
mov al, bl
and al, bh
xor bl, bh
or al, bl
test al, 1
jne 0x100161cf
jmp 0x10016878
mov eax, dword [ebp - 0x28]
movzx ecx, word [eax + 0x48]
cmp ecx, 0x5a4d
setne dl
mov ecx, dword [0x101537c8]
mov esi, dword [0x101537c4]
mov edi, ecx
add edi, 0x455d74b8
sub edi, 1
sub edi, 0x455d74b8
imul ecx, edi
and ecx, 1
cmp ecx, 0
sete dh
cmp esi, 0xa
setl bl
mov bh, dh
and bh, bl
xor dh, bl
or bh, dh
test bh, 1
mov byte [ebp - 0x32], dl
jne 0x10016233
jmp 0x10016878
mov al, byte [ebp - 0x32]
test al, 1
jne 0x10016256
jmp 0x10016243
mov eax, dword [ebp - 0x28]
cmp dword [eax + 0x84], 0
jne 0x10016262
mov dword [ebp - 0x10], 0xb
jmp 0x10016727
mov al, 1
mov ecx, dword [0x101537c8]
mov edx, dword [0x101537c4]
mov esi, ecx
sub esi, 0xf3357a4d
sub esi, 1
add esi, 0xf3357a4d
imul ecx, esi
and ecx, 1
cmp ecx, 0
sete ah
cmp edx, 0xa
setl bl
mov bh, ah
xor bh, 1
mov cl, bl
xor cl, 1
xor al, 0
mov ch, bh
and ch, 0
and ah, al
mov dl, cl
and dl, 0
and bl, al
or ch, ah
or dl, bl
xor ch, dl
or bh, cl
xor bh, 1
or al, 0
and bh, al
or ch, bh
test ch, 1
jne 0x100162d8
jmp 0x1001687d
mov al, 1
mov ecx, dword [0x101537c8]
mov edx, dword [0x101537c4]
mov esi, ecx
sub esi, 0x45103c04
sub esi, 1
add esi, 0x45103c04
imul ecx, esi
and ecx, 1
cmp ecx, 0
sete ah
cmp edx, 0xa
setl bl
mov bh, ah
xor bh, 1
mov cl, bl
xor cl, 1
xor al, 1
mov ch, bh
and ch, 1
and ah, al
mov dl, cl
and dl, 1
and bl, al
or ch, ah
or dl, bl
xor ch, dl
or bh, cl
xor bh, 1
or al, 1
and bh, al
or ch, bh
test ch, 1
jne 0x1001634e
jmp 0x1001687d
jmp 0x10016353
mov eax, 0xf8
mov ecx, dword [ebp - 0x18]
mov edx, dword [ebp - 0x14]
mov esi, dword [ebp - 0x28]
mov edi, dword [esi + 0x84]
add esi, 0x88
mov dword [esp], esi
mov dword [esp + 4], edi
mov dword [esp + 8], 0xf8
mov dword [esp + 0xc], edx
mov dword [ebp - 0x38], eax
call ecx
test al, 1
jne 0x10016399
mov dword [ebp - 0x10], 0x1e
jmp 0x10016727
jmp 0x1001639e
mov eax, dword [ebp - 0x28]
cmp dword [eax + 0x88], 0x4550
jne 0x100164ac
mov eax, dword [0x101537c8]
mov ecx, dword [0x101537c4]
mov edx, eax
add edx, 0x17c5d2bc
sub edx, 1
sub edx, 0x17c5d2bc
imul eax, edx
and eax, 1
cmp eax, 0
sete bl
cmp ecx, 0xa
setl bh
mov al, bl
and al, bh
xor bl, bh
or al, bl
test al, 1
jne 0x100163fe
jmp 0x10016882
mov al, 1
mov ecx, dword [ebp - 0x28]
movzx edx, word [ecx + 0xa0]
cmp edx, 0x10b
setne ah
mov edx, dword [0x101537c8]
mov esi, dword [0x101537c4]
mov edi, edx
sub edi, 0xd463c099
sub edi, 1
add edi, 0xd463c099
imul edx, edi
and edx, 1
cmp edx, 0
sete bl
cmp esi, 0xa
setl bh
mov cl, bl
xor cl, 1
mov ch, bh
xor ch, 1
xor al, 1
mov dl, cl
and dl, 1
and bl, al
mov dh, ch
and dh, 1
and bh, al
or dl, bl
or dh, bh
xor dl, dh
or cl, ch
xor cl, 1
or al, 1
and cl, al
or dl, cl
test dl, 1
mov byte [ebp - 0x39], ah
jne 0x1001648a
jmp 0x10016882
mov al, byte [ebp - 0x39]
test al, 1
jne 0x100164ac
jmp 0x1001649a
mov eax, dword [ebp - 0x28]
cmp word [eax + 0x8e], 0
jne 0x10016576
mov eax, dword [0x101537c8]
mov ecx, dword [0x101537c4]
mov edx, eax
sub edx, 0xc3c8fd4
sub edx, 1
add edx, 0xc3c8fd4
imul eax, edx
and eax, 1
cmp eax, 0
sete bl
cmp ecx, 0xa
setl bh
mov al, bl
and al, bh
xor bl, bh
or al, bl
test al, 1
jne 0x100164f9
jmp 0x10016887
mov al, 1
mov ecx, 0
mov dword [ebp - 0x10], 0xb
mov edx, dword [0x101537c8]
mov esi, dword [0x101537c4]
sub ecx, 1
mov edi, edx
add edi, ecx
imul edx, edi
and edx, 1
cmp edx, 0
sete ah
cmp esi, 0xa
setl bl
mov bh, ah
xor bh, 1
mov cl, bl
xor cl, 1
xor al, 1
mov ch, bh
and ch, 1
and ah, al
mov dl, cl
and dl, 1
and bl, al
or ch, ah
or dl, bl
xor ch, dl
or bh, cl
xor bh, 1
or al, 1
and bh, al
or ch, bh
test ch, 1
jne 0x10016571
jmp 0x10016887
jmp 0x10016727
mov eax, 0
mov ecx, dword [ebp - 0x28]
movzx edx, word [ecx + 0x8e]
imul edx, edx, 0x28
mov dword [ebp - 0x20], edx
mov edx, dword [ecx + 0x84]
sub eax, 4
sub edx, eax
add edx, 0xcf4b5672
add edx, 0x14
sub edx, 0xcf4b5672
movzx eax, word [ecx + 0x9c]
add edx, 0x3d455689
add edx, eax
sub edx, 0x3d455689
mov dword [ebp - 0x24], edx
mov eax, dword [0x10150e90]
mov edx, dword [ebp - 0x20]
mov esi, dword [sym.imp.KERNEL32.dll_GetProcessHeap]
mov dword [ebp - 0x40], eax
mov dword [ebp - 0x44], edx
call esi
mov ecx, esp
mov edx, dword [ebp - 0x44]
mov dword [ecx + 8], edx
mov dword [ecx], eax
mov dword [ecx + 4], 0
mov eax, dword [ebp - 0x40]
call eax
sub esp, 0xc
mov ecx, dword [ebp - 0x28]
mov dword [ecx + 0x180], eax
cmp dword [ecx + 0x180], 0
jne 0x10016619
mov dword [ebp - 0x10], 8
jmp 0x10016727
jmp 0x1001661e
mov eax, dword [ebp - 0x18]
mov ecx, dword [ebp - 0x14]
mov edx, dword [ebp - 0x20]
mov esi, dword [ebp - 0x24]
mov edi, dword [ebp - 0x28]
mov ebx, dword [edi + 0x180]
mov dword [esp], ebx
mov dword [esp + 4], esi
mov dword [esp + 8], edx
mov dword [esp + 0xc], ecx
call eax
test al, 1
jne 0x1001671b
mov al, 1
mov ecx, dword [0x101537c8]
mov edx, dword [0x101537c4]
mov esi, ecx
sub esi, 0x11b33019
sub esi, 1
add esi, 0x11b33019
imul ecx, esi
and ecx, 1
cmp ecx, 0
sete ah
cmp edx, 0xa
setl bl
mov bh, ah
xor bh, 1
mov cl, bl
xor cl, 1
xor al, 1
mov ch, bh
and ch, 1
and ah, al
mov dl, cl
and dl, 1
and bl, al
or ch, ah
or dl, bl
xor ch, dl
or bh, cl
xor bh, 1
or al, 1
and bh, al
or ch, bh
test ch, 1
jne 0x100166c2
jmp 0x10016893
mov dword [ebp - 0x10], 0x1e
mov eax, dword [0x101537c8]
mov ecx, dword [0x101537c4]
mov edx, eax
sub edx, 0x59355d6d
sub edx, 1
add edx, 0x59355d6d
imul eax, edx
and eax, 1
cmp eax, 0
sete bl
cmp ecx, 0xa
setl bh
mov al, bl
and al, bh
xor bl, bh
or al, bl
test al, 1
jne 0x10016716
jmp 0x10016893
jmp 0x10016727
jmp 0x10016720
mov dword [ebp - 0x10], 0
mov al, 1
mov ecx, dword [0x101537c8]
mov edx, dword [0x101537c4]
mov esi, ecx
add esi, 0xacd97fa2
sub esi, 1
sub esi, 0xacd97fa2
imul ecx, esi
and ecx, 1
cmp ecx, 0
sete ah
cmp edx, 0xa
setl bl
mov bh, ah
xor bh, 1
mov cl, bl
xor cl, 1
xor al, 0
mov ch, bh
and ch, 0
and ah, al
mov dl, cl
and dl, 0
and bl, al
or ch, ah
or dl, bl
xor ch, dl
or bh, cl
xor bh, 1
or al, 0
and bh, al
or ch, bh
test ch, 1
jne 0x1001679d
jmp 0x1001689f
mov al, 1
mov ecx, 0
mov edx, dword [ebp - 0x10]
mov esi, dword [0x101537c8]
mov edi, dword [0x101537c4]
sub ecx, 1
mov ebx, esi
add ebx, ecx
imul esi, ebx
and esi, 1
cmp esi, 0
sete ah
cmp edi, 0xa
setl cl
mov ch, ah
xor ch, 1
mov bl, cl
xor bl, 1
xor al, 1
mov bh, ch
and bh, 1
and ah, al
mov byte [ebp - 0x45], al
mov al, bl
and al, 1
mov byte [ebp - 0x46], al
mov al, byte [ebp - 0x45]
and cl, al
or bh, ah
mov ah, byte [ebp - 0x46]
or ah, cl
xor bh, ah
or ch, bl
xor ch, 1
or al, 1
and ch, al
or bh, ch
test bh, 1
mov dword [ebp - 0x4c], edx
jne 0x1001681f
jmp 0x1001689f
mov eax, dword [ebp - 0x4c]
add esp, 0x5c
pop esi
pop edi
pop ebx
pop ebp
ret 8
mov eax, 0
mov ecx, 0x40
mov edx, dword [ebp - 0x18]
mov esi, dword [ebp - 0x14]
mov edi, dword [ebp - 0x28]
add edi, 0x48
mov dword [esp], edi
mov dword [esp + 4], 0
mov dword [esp + 8], 0x40
mov dword [esp + 0xc], esi
mov dword [ebp - 0x50], eax
mov dword [ebp - 0x54], ecx
call edx
mov byte [ebp - 0x55], al
jmp 0x10015feb
mov dword [ebp - 0x10], 0x1e
jmp 0x100160fb
jmp 0x100161cf
jmp 0x100162d8
jmp 0x100163fe
mov dword [ebp - 0x10], 0xb
jmp 0x100164f9
mov dword [ebp - 0x10], 0x1e
jmp 0x100166c2
jmp 0x1001679d