Function at 0x10019500
Capabilities:
Parse pe header

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x20
mov eax, dword [0x1047edb0]
imul eax, dword [0x1047ef64]
mov dword [0x1047ee28], eax
mov ecx, dword [0x1047eef0]
imul ecx, dword [0x1047eef4]
mov dword [0x1047ee3c], ecx
mov edx, dword [0x1047ee08]
and edx, dword [0x1047ede0]
mov dword [0x1047ee1c], edx
mov eax, dword [0x1047ef58]
add eax, dword [0x1047ee5c]
mov dword [0x1047ef14], eax
mov ecx, dword [0x1047ed90]
add ecx, dword [0x1047ed8c]
mov dword [0x1047ef58], ecx
mov edx, dword [0x1047ef48]
add edx, dword [0x1047ef70]
mov dword [0x1047f00c], edx
mov eax, dword [0x1047efd4]
add eax, dword [0x1047f014]
mov dword [0x1047ee38], eax
mov ecx, dword [0x1047ef38]
and ecx, dword [0x1047ef08]
mov dword [0x1047efac], ecx
mov edx, dword [0x1047ee64]
and edx, dword [0x1047ef8c]
mov dword [0x1047edb0], edx
mov eax, dword [0x1047eed8]
add eax, dword [0x1047ede0]
mov dword [0x1047eeb4], eax
mov ecx, dword [0x1047edac]
add ecx, dword [0x1047ef8c]
mov dword [0x1047ef98], ecx
mov edx, dword [0x1047ed9c]
imul edx, dword [0x1047eefc]
mov dword [0x1047efc4], edx
mov eax, dword [0x1047edc0]
sub eax, dword [0x1047ef3c]
mov dword [0x1047edb4], eax
mov ecx, dword [0x1047eea8]
sub ecx, dword [0x1047f038]
mov dword [0x1047ee60], ecx
mov edx, dword [0x1047ef24]
sub edx, dword [0x1047ef40]
mov dword [0x1047ef60], edx
mov eax, dword [0x1047eff8]
add eax, dword [0x1047eefc]
mov dword [0x1047ef1c], eax
mov ecx, dword [0x1047ee9c]
add ecx, dword [0x1047efe8]
mov dword [0x1047f010], ecx
mov edx, dword [0x1047eff0]
add edx, dword [0x1047f00c]
mov dword [0x1047eefc], edx
mov eax, dword [0x1047f024]
sub eax, dword [0x1047ed98]
mov dword [0x1047ef18], eax
mov ecx, dword [0x1047ee90]
imul ecx, dword [0x1047ee84]
mov dword [0x1047efb0], ecx
mov edx, dword [0x1047f00c]
and edx, dword [0x1047ef20]
mov dword [0x1047eef4], edx
mov eax, dword [0x1047f00c]
sub eax, dword [0x1047f000]
mov dword [0x1047ee5c], eax
mov ecx, dword [ebp + 8]
mov dword [ebp - 0x10], ecx
mov edx, dword [0x1047ef24]
sub edx, dword [0x1047ee60]
mov dword [0x1047ef00], edx
mov eax, dword [0x1047ee30]
and eax, dword [0x1047ee40]
mov dword [0x1047edec], eax
mov ecx, dword [0x1047ee54]
and ecx, dword [0x1047ee0c]
mov dword [0x1047ef30], ecx
mov edx, dword [0x1047eea0]
add edx, dword [0x1047edfc]
mov dword [0x1047edbc], edx
mov eax, dword [0x1047ed8c]
imul eax, dword [0x1047eea4]
mov dword [0x1047efd4], eax
mov ecx, dword [0x1047ee10]
imul ecx, dword [0x1047ee34]
mov dword [0x1047eff0], ecx
mov edx, dword [0x1047ef50]
imul edx, dword [0x1047ee54]
mov dword [0x1047ed98], edx
mov eax, dword [0x1047ef30]
and eax, dword [0x1047eed4]
mov dword [0x1047ee24], eax
mov ecx, dword [ebp - 0x10]
movzx edx, word [ecx]
cmp edx, 0x5a4d
je 0x10019763
xor eax, eax
jmp 0x1001a2fd
mov eax, dword [ebp - 0x10]
mov ecx, dword [ebp + 8]
add ecx, dword [eax + 0x3c]
mov dword [ebp - 0xc], ecx
mov edx, dword [0x1047efc8]
and edx, dword [0x1047edd4]
mov dword [0x1047ee90], edx
mov eax, dword [0x1047eddc]
sub eax, dword [0x1047ef1c]
mov dword [0x1047ee94], eax
mov ecx, dword [ebp - 0xc]
cmp dword [ecx], 0x4550
je 0x10019832
xor eax, eax
jmp 0x1001a2fd
push 4
push 0x2000
mov ecx, dword [ebp - 0xc]
mov edx, dword [ecx + 0x50]
push edx
mov eax, dword [ebp - 0xc]
mov ecx, dword [eax + 0x34]
push ecx
call dword [sym.imp.KERNEL32.dll_VirtualAlloc]
mov dword [ebp - 8], eax
mov edx, dword [0x1047eeb4]
imul edx, dword [0x1047ef28]
mov dword [0x1047eda4], edx
cmp dword [ebp - 8], 0
jne 0x100198e7
push 4
push 0x2000
mov eax, dword [ebp - 0xc]
mov ecx, dword [eax + 0x50]
push ecx
push 0
call dword [sym.imp.KERNEL32.dll_VirtualAlloc]
mov dword [ebp - 8], eax
mov edx, dword [0x1047ef00]
add edx, dword [0x1047ee24]
mov dword [0x1047ef0c], edx
cmp dword [ebp - 8], 0
jne 0x100198e7
xor eax, eax
jmp 0x1001a2fd
push 0x14
push 0
call dword [sym.imp.KERNEL32.dll_GetProcessHeap]
push eax
call dword [sym.imp.KERNEL32.dll_HeapAlloc]
mov dword [ebp - 4], eax
mov ecx, dword [0x1047eec4]
sub ecx, dword [0x1047ef78]
mov dword [0x1047f028], ecx
mov edx, dword [0x1047ede8]
add edx, dword [0x1047eda0]
mov dword [0x1047ef40], edx
mov eax, dword [0x1047eda8]
sub eax, dword [0x1047eeb4]
mov dword [0x1047ee10], eax
mov ecx, dword [0x1047ee68]
sub ecx, dword [0x1047eecc]
mov dword [0x1047ee04], ecx
mov edx, dword [0x1047efbc]
and edx, dword [0x1047efec]
mov dword [0x1047ed90], edx
mov eax, dword [ebp - 4]
mov ecx, dword [ebp - 8]
mov dword [eax + 4], ecx
mov edx, dword [0x1047ef3c]
imul edx, dword [0x1047edd8]
mov dword [0x1047efdc], edx
mov eax, dword [0x1047eef4]
sub eax, dword [0x1047edd0]
mov dword [0x1047eff8], eax
mov ecx, dword [0x1047ee08]
imul ecx, dword [0x1047f038]
mov dword [0x1047efc0], ecx
mov edx, dword [ebp - 4]
mov dword [edx + 0xc], 0
mov eax, dword [0x1047ee4c]
add eax, dword [0x1047ee04]
mov dword [0x1047ee2c], eax
mov ecx, dword [0x1047ee44]
and ecx, dword [0x1047f018]
mov dword [0x1047efb0], ecx
mov edx, dword [0x1047ef90]
sub edx, dword [0x1047ef88]
mov dword [0x1047ee1c], edx
mov eax, dword [0x1047effc]
sub eax, dword [0x1047ee8c]
mov dword [0x1047ef50], eax
mov ecx, dword [0x1047eef0]
sub ecx, dword [0x1047eeb0]
mov dword [0x1047ee88], ecx
mov edx, dword [0x1047edc8]
imul edx, dword [0x1047efcc]
mov dword [0x1047ee30], edx
mov eax, dword [0x1047ef88]
and eax, dword [0x1047ef34]
mov dword [0x1047efbc], eax
mov ecx, dword [0x1047ee94]
sub ecx, dword [0x1047efe4]
mov dword [0x1047ef18], ecx
mov edx, dword [ebp - 4]
mov dword [edx + 8], 0
mov eax, dword [0x1047edb4]
add eax, dword [0x1047edfc]
mov dword [0x1047ee68], eax
mov ecx, dword [0x1047ed88]
and ecx, dword [0x1047ef24]
mov dword [0x1047ed80], ecx
mov edx, dword [0x1047ef3c]
sub edx, dword [0x1047eff0]
mov dword [0x1047eec0], edx
mov eax, dword [0x1047ee24]
imul eax, dword [0x1047ef3c]
mov dword [0x1047ee60], eax
mov ecx, dword [0x1047eeb0]
imul ecx, dword [0x1047ef58]
mov dword [0x1047eddc], ecx
mov edx, dword [0x1047ef28]
sub edx, dword [0x1047ede0]
mov dword [0x1047edf4], edx
mov eax, dword [0x1047ee10]
imul eax, dword [0x1047eda0]
mov dword [0x1047ef2c], eax
mov ecx, dword [ebp - 4]
mov dword [ecx + 0x10], 0
mov edx, dword [0x1047efc8]
sub edx, dword [0x1047efec]
mov dword [0x1047ee0c], edx
push 4
push 0x1000
mov eax, dword [ebp - 0xc]
mov ecx, dword [eax + 0x50]
push ecx
mov edx, dword [ebp - 8]
push edx
call dword [sym.imp.KERNEL32.dll_VirtualAlloc]
mov eax, dword [0x1047efc4]
add eax, dword [0x1047ee08]
mov dword [0x1047ee64], eax
mov ecx, dword [0x1047eee4]
imul ecx, dword [0x1047efcc]
mov dword [0x1047ee84], ecx
mov edx, dword [0x1047eed0]
add edx, dword [0x1047f01c]
mov dword [0x1047efb0], edx
mov eax, dword [0x1047eee0]
add eax, dword [0x1047f03c]
mov dword [0x1047eed4], eax
mov ecx, dword [0x1047f024]
and ecx, dword [0x1047ee08]
mov dword [0x1047eeb8], ecx
push 4
push 0x1000
mov edx, dword [ebp - 0xc]
mov eax, dword [edx + 0x54]
push eax
mov ecx, dword [ebp - 8]
push ecx
call dword [sym.imp.KERNEL32.dll_VirtualAlloc]
mov dword [ebp - 0x14], eax
mov edx, dword [0x1047f018]
imul edx, dword [0x1047ef78]
mov dword [0x1047ef80], edx
mov eax, dword [0x1047f028]
and eax, dword [0x1047f014]
mov dword [0x1047efb0], eax
mov ecx, dword [0x1047efb4]
add ecx, dword [0x1047ed7c]
mov dword [0x1047ee30], ecx
mov edx, dword [0x1047f000]
imul edx, dword [0x1047efb8]
mov dword [0x1047efb0], edx
mov eax, dword [0x1047eda8]
imul eax, dword [0x1047edec]
mov dword [0x1047f028], eax
mov ecx, dword [0x1047efbc]
imul ecx, dword [0x1047ef50]
mov dword [0x1047ef4c], ecx
mov edx, dword [ebp - 0x10]
mov eax, dword [edx + 0x3c]
mov ecx, dword [ebp - 0xc]
add eax, dword [ecx + 0x54]
push eax
mov edx, dword [ebp - 0x10]
push edx
mov eax, dword [ebp - 0x14]
push eax
call fcn.1012a390
add esp, 0xc
mov ecx, dword [0x1047ef04]
and ecx, dword [0x1047ef58]
mov dword [0x1047ef7c], ecx
mov edx, dword [0x1047efe8]
sub edx, dword [0x1047ef5c]
mov dword [0x1047ef94], edx
mov eax, dword [0x1047ef24]
sub eax, dword [0x1047efec]
mov dword [0x1047f030], eax
mov ecx, dword [0x1047ef18]
and ecx, dword [0x1047eefc]
mov dword [0x1047ef54], ecx
mov edx, dword [ebp - 0x10]
mov eax, dword [ebp - 0x14]
add eax, dword [edx + 0x3c]
mov ecx, dword [ebp - 4]
mov dword [ecx], eax
mov edx, dword [0x1047ef60]
add edx, dword [0x1047f01c]
mov dword [0x1047eefc], edx
mov eax, dword [0x1047ef20]
imul eax, dword [0x1047edfc]
mov dword [0x1047ef68], eax
mov ecx, dword [0x1047eff8]
add ecx, dword [0x1047ed94]
mov dword [0x1047eed4], ecx
mov edx, dword [0x1047f008]
add edx, dword [0x1047ee40]
mov dword [0x1047effc], edx
mov eax, dword [0x1047edac]
sub eax, dword [0x1047eea0]
mov dword [0x1047edb8], eax
mov ecx, dword [0x1047eedc]
sub ecx, dword [0x1047f00c]
mov dword [0x1047eda4], ecx
mov edx, dword [ebp - 4]
mov eax, dword [edx]
mov ecx, dword [ebp - 8]
mov dword [eax + 0x34], ecx
mov edx, dword [0x1047ee54]
add edx, dword [0x1047f00c]
mov dword [0x1047efc4], edx
mov eax, dword [0x1047eed4]
and eax, dword [0x1047ef30]
mov dword [0x1047ee4c], eax
mov ecx, dword [0x1047ee38]
imul ecx, dword [0x1047f034]
mov dword [0x1047ed84], ecx
mov edx, dword [0x1047ed90]
sub edx, dword [0x1047f024]
mov dword [0x1047ee70], edx
mov eax, dword [0x1047ee3c]
imul eax, dword [0x1047f034]
mov dword [0x1047ede4], eax
mov ecx, dword [0x1047edac]
imul ecx, dword [0x1047ef60]
mov dword [0x1047ee08], ecx
mov edx, dword [0x1047ef18]
add edx, dword [0x1047eee4]
mov dword [0x1047ee44], edx
mov eax, dword [ebp - 4]
push eax
mov ecx, dword [ebp - 0xc]
push ecx
mov edx, dword [ebp + 8]
push edx
call fcn.10017740
add esp, 0xc
mov eax, dword [0x1047ed98]
imul eax, dword [0x1047ef94]
mov dword [0x1047ef1c], eax
mov ecx, dword [0x1047efe4]
sub ecx, dword [0x1047ee48]
mov dword [0x1047ee74], ecx
mov edx, dword [0x1047ee00]
sub edx, dword [0x1047ee9c]
mov dword [0x1047ef30], edx
mov eax, dword [0x1047eff4]
sub eax, dword [0x1047ef48]
mov dword [0x1047ee7c], eax
mov ecx, dword [0x1047ef8c]
sub ecx, dword [0x1047ed98]
mov dword [0x1047ef3c], ecx
mov edx, dword [0x1047f000]
and edx, dword [0x1047ee18]
mov dword [0x1047efa0], edx
mov eax, dword [ebp - 0xc]
mov ecx, dword [ebp - 8]
sub ecx, dword [eax + 0x34]
mov dword [ebp - 0x18], ecx
mov edx, dword [0x1047ef90]
sub edx, dword [0x1047ef38]
mov dword [0x1047eef0], edx
mov eax, dword [0x1047ef78]
sub eax, dword [0x1047f030]
mov dword [0x1047ef98], eax
mov ecx, dword [0x1047eea8]
add ecx, dword [0x1047ee1c]
mov dword [0x1047ee00], ecx
mov edx, dword [0x1047f03c]
imul edx, dword [0x1047edec]
mov dword [0x1047f020], edx
mov eax, dword [0x1047eef8]
imul eax, dword [0x1047edb8]
mov dword [0x1047ee20], eax
mov ecx, dword [0x1047efd0]
add ecx, dword [0x1047edfc]
mov dword [0x1047ee18], ecx
mov edx, dword [0x1047ef4c]
sub edx, dword [0x1047efd0]
mov dword [0x1047ee50], edx
cmp dword [ebp - 0x18], 0
je 0x10019ebb
mov eax, dword [ebp - 0x18]
push eax
mov ecx, dword [ebp - 4]
push ecx
call fcn.10018310
add esp, 8
mov edx, dword [0x1047ef5c]
and edx, dword [0x1047efc0]
mov dword [0x1047efdc], edx
mov eax, dword [0x1047efc8]
imul eax, dword [0x1047edd0]
mov dword [0x1047f014], eax
mov ecx, dword [0x1047efd8]
sub ecx, dword [0x1047eec8]
mov dword [0x1047f010], ecx
mov edx, dword [0x1047edf8]
sub edx, dword [0x1047eec4]
mov dword [0x1047f018], edx
mov eax, dword [0x1047ef60]
and eax, dword [0x1047ef90]
mov dword [0x1047edb0], eax
mov ecx, dword [0x1047eefc]
add ecx, dword [0x1047ee84]
mov dword [0x1047efa4], ecx
mov edx, dword [0x1047eec4]
imul edx, dword [0x1047ef64]
mov dword [0x1047ee84], edx
mov eax, dword [ebp - 4]
push eax
call fcn.10016ca0
add esp, 4
test eax, eax
jne 0x10019f40
jmp 0x1001a23e
mov ecx, dword [ebp - 4]
push ecx
call fcn.10017d20
add esp, 4
mov edx, dword [0x1047ee5c]
imul edx, dword [0x1047ee54]
mov dword [0x1047effc], edx
mov eax, dword [0x1047eecc]
imul eax, dword [0x1047ede0]
mov dword [0x1047eeb0], eax
mov ecx, dword [0x1047f000]
imul ecx, dword [0x1047ef8c]
mov dword [0x1047edac], ecx
mov edx, dword [0x1047eddc]
imul edx, dword [0x1047efd8]
mov dword [0x1047f010], edx
mov eax, dword [0x1047ef4c]
imul eax, dword [0x1047ef54]
mov dword [0x1047ed84], eax
mov ecx, dword [0x1047efa0]
imul ecx, dword [0x1047ee20]
mov dword [0x1047efcc], ecx
mov edx, dword [ebp - 4]
mov eax, dword [edx]
cmp dword [eax + 0x28], 0
je 0x1001a1bd
mov ecx, dword [ebp - 4]
mov edx, dword [ecx]
mov eax, dword [ebp - 8]
add eax, dword [edx + 0x28]
mov dword [ebp - 0x1c], eax
mov ecx, dword [0x1047edfc]
and ecx, dword [0x1047ed8c]
mov dword [0x1047ee24], ecx
mov edx, dword [0x1047efb0]
and edx, dword [0x1047edd8]
mov dword [0x1047f034], edx
mov eax, dword [0x1047effc]
sub eax, dword [0x1047ed80]
mov dword [0x1047f008], eax
mov ecx, dword [0x1047f034]
add ecx, dword [0x1047eefc]
mov dword [0x1047ef84], ecx
mov edx, dword [0x1047f014]
and edx, dword [0x1047ee94]
mov dword [0x1047eed8], edx
cmp dword [ebp - 0x1c], 0
jne 0x1001a0a9
jmp 0x1001a23e
push 0
push 1
mov eax, dword [ebp - 8]
push eax
call dword [ebp - 0x1c]
mov dword [ebp - 0x20], eax
mov ecx, dword [0x1047efcc]
imul ecx, dword [0x1047ef8c]
mov dword [0x1047efcc], ecx
mov edx, dword [0x1047ed98]
and edx, dword [0x1047ee14]
mov dword [0x1047ed90], edx
mov eax, dword [0x1047ee18]
sub eax, dword [0x1047efc0]
mov dword [0x1047ee88], eax
mov ecx, dword [0x1047ef9c]
and ecx, dword [0x1047f00c]
mov dword [0x1047edf0], ecx
cmp dword [ebp - 0x20], 0
jne 0x1001a1a0
jmp 0x1001a23e
mov ecx, dword [ebp - 4]
mov dword [ecx + 0x10], 1
mov edx, dword [0x1047edd4]
imul edx, dword [0x1047ee94]
mov dword [0x1047effc], edx
mov eax, dword [ebp - 4]
jmp 0x1001a2fd
mov ecx, dword [ebp - 4]
push ecx
call fcn.10018a00
add esp, 4
mov edx, dword [0x1047efe4]
and edx, dword [0x1047ede8]
mov dword [0x1047ef50], edx
mov eax, dword [0x1047eed0]
add eax, dword [0x1047ef6c]
mov dword [0x1047ef0c], eax
mov ecx, dword [0x1047eeb8]
sub ecx, dword [0x1047ee5c]
mov dword [0x1047efa4], ecx
mov edx, dword [0x1047f004]
and edx, dword [0x1047edf0]
mov dword [0x1047edc0], edx
mov eax, dword [0x1047ef00]
and eax, dword [0x1047ee40]
mov dword [0x1047eee0], eax
mov ecx, dword [0x1047edc8]
and ecx, dword [0x1047eec8]
mov dword [0x1047ee74], ecx
xor eax, eax
jmp 0x1001a2fd
mov esp, ebp
pop ebp
ret