Function at 0x42c0d0
Capabilities:
Parse pe header

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x48e300
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
sub esp, 0x30
push ebx
push esi
push edi
mov ebx, ecx
xor edi, edi
mov dword [ebp - 0x10], esp
mov dword [ebx + 0xa0], edi
mov eax, dword [ebx + 8]
lea ecx, [ebx + 0x10]
mov dword [ebp - 0x1c], ebx
mov edx, dword [eax]
push ecx
push eax
mov dword [ebp - 4], edi
call dword [edx + 8]
add esp, 8
cmp eax, edi
jne 0x42c12d
push str.GetFileSizeEx__
push edi
push 0x9c
push str.D:_root.ddev360C360PubSrc360Base360BaseQHPEParser.cpp
call fcn.004264d0
add esp, 0x10
cmp dword [ebp + 8], edi
jne 0x42c137
mov dword [ebx + 0x20], edi
jmp 0x42c13e
mov dword [ebx + 0x20], 1
lea ecx, [ebx + 0x24]
call fcn.004252e0
push 0x10000
call fcn.00429900
add esp, 4
cmp eax, edi
mov dword [ebx + 0x7c], eax
jne 0x42c172
push 0x4b3e88
push edi
push 0xa3
push str.D:_root.ddev360C360PubSrc360Base360BaseQHPEParser.cpp
call fcn.004264d0
add esp, 0x10
mov dword [ebx + 0x98], edi
mov dword [ebx + 0x9c], edi
mov dword [ebx + 0x90], edi
mov dword [ebx + 0x94], edi
mov dword [ebx + 0x88], edi
lea esi, [ebx + 0xe4]
mov dword [ebx + 0x8c], edi
lea edx, [ebp - 0x14]
mov dword [ebx + 0x80], edi
mov word [esi], di
mov eax, dword [ebx + 8]
push edx
push edi
push edi
mov ecx, dword [eax]
push 2
push esi
push eax
call dword [ecx + 4]
add esp, 0x18
cmp eax, edi
jne 0x42c1c3
call fcn.00426dd0
cmp dword [ebp - 0x14], 2
jne 0x42c1d0
cmp word [esi], 0x5a4d
je 0x42c1e9
push 0x4b4b28
push 1
push 0xb0
push str.D:_root.ddev360C360PubSrc360Base360BaseQHPEParser.cpp
call fcn.00426c70
add esp, 0x10
mov edx, dword [ebx + 0x20]
xor ecx, ecx
push edx
xor eax, eax
push 0x40
push ecx
push eax
push esi
mov ecx, ebx
call fcn.0042e940
cmp eax, edi
jne 0x42c206
call fcn.00426dd0
mov eax, dword [ebx + 0x120]
mov ecx, dword [ebx + 0x14]
add eax, 4
cmp edi, ecx
jl 0x42c240
jg 0x42c21d
cmp eax, dword [ebx + 0x10]
jbe 0x42c240
push str.DOS
push 1
push 0xba
push str.D:_root.ddev360C360PubSrc360Base360BaseQHPEParser.cpp
mov dword [ebx + 0xa0], 2
call fcn.00426c70
add esp, 0x10
mov eax, dword [ebx + 0x120]
lea ecx, [ebp - 0x18]
cdq
mov edi, eax
mov eax, dword [ebx + 0x20]
mov esi, edx
push eax
push 4
push esi
push edi
push ecx
mov ecx, ebx
call fcn.0042e940
test eax, eax
jne 0x42c267
call fcn.00426dd0
mov ecx, dword [ebp - 0x18]
mov eax, ecx
and eax, 0xffff
sub eax, 0x454c
je 0x42c2ed
sub eax, 2
je 0x42c2b0
sub eax, 2
je 0x42c29a
push str.DOS
push 1
mov dword [ebx + 0xa0], 2
push 0xd4
jmp 0x42c303
cmp ecx, 0x4550
je 0x42c310
push 0x4b4b00
push 1
push 0xd0
jmp 0x42c303
mov dword [ebx + 0xa0], 3
mov edx, dword [ebx + 0x20]
add edi, 2
push edx
adc esi, 0
push 0x40
push esi
lea eax, [ebx + 0xa4]
push edi
push eax
mov ecx, ebx
call fcn.0042e940
test eax, eax
jne 0x42c2df
call fcn.00426dd0
push 0x4b4ae8
push 1
push 0xc8
jmp 0x42c303
push 0x4b4ad0
push 1
mov dword [ebx + 0xa0], 4
push 0xcc
push str.D:_root.ddev360C360PubSrc360Base360BaseQHPEParser.cpp
call fcn.00426c70
add esp, 0x10
mov dword [ebx + 0xa0], 6
mov ecx, dword [ebx + 0x20]
add edi, 4
push ecx
adc esi, 0
push 0x14
lea eax, [ebx + 0x124]
push esi
push edi
push eax
mov ecx, ebx
call fcn.0042e940
test eax, eax
jne 0x42c33f
call fcn.00426dd0
mov ax, word [ebx + 0x124]
add edi, 0x14
adc esi, 0
cmp ax, 0x14c
mov dword [ebp - 0x30], edi
mov dword [ebp - 0x2c], esi
je 0x42c387
cmp ax, 0x200
je 0x42c387
cmp ax, 0x8664
je 0x42c387
push str._rN_e
push 1
push 0xe2
push str.D:_root.ddev360C360PubSrc360Base360BaseQHPEParser.cpp
mov dword [ebx + 0xa0], 5
call fcn.00426c70
add esp, 0x10
mov edx, dword [ebx + 0x20]
lea eax, [ebx + 0x138]
push edx
push 2
push esi
push edi
push eax
mov ecx, ebx
call fcn.0042e940
test eax, eax
jne 0x42c3a6
call fcn.00426dd0
mov ax, word [ebx + 0x138]
cmp ax, 0x10b
jne 0x42c643
xor eax, eax
mov ax, word [ebx + 0x134]
cmp eax, 0xe0
mov dword [ebp - 0x14], eax
jbe 0x42c3d2
mov eax, 0xe0
mov dword [ebp - 0x14], eax
mov edx, dword [ebx + 0x20]
lea ecx, [ebx + 0x2e4]
push edx
push eax
push esi
push edi
push ecx
mov ecx, ebx
call fcn.0042e940
test eax, eax
jne 0x42c3f0
call fcn.00426dd0
lea eax, [ebx + 0x2e4]
mov dword [ebx + 0x250], eax
add eax, 0x60
mov dword [ebx + 0x258], eax
lea eax, [edi + 0x40]
mov dword [ebx + 0x408], eax
mov ecx, dword [ebx + 0x250]
cmp dword [ecx + 0x5c], 4
ja 0x42c426
mov dword [ebx + 0x40c], 0xffffffff
jmp 0x42c432
add edi, 0x80
mov dword [ebx + 0x40c], edi
mov edx, dword [ebx + 0x250]
mov eax, dword [edx + 0x5c]
mov dword [ebx + 0x13c], eax
mov ecx, dword [ebx + 0x250]
mov edx, dword [ecx + 0x10]
mov dword [ebx + 0x140], edx
mov eax, dword [ebx + 0x250]
mov ecx, dword [eax + 0x20]
mov dword [ebx + 0x144], ecx
mov edx, dword [ebx + 0x250]
mov eax, dword [edx + 0x38]
mov dword [ebx + 0x14c], eax
mov ecx, dword [ebx + 0x250]
mov edx, dword [ecx + 0x24]
mov dword [ebx + 0x148], edx
mov eax, dword [ebx + 0x250]
mov ecx, dword [eax + 4]
mov dword [ebx + 0x150], ecx
mov edx, dword [ebx + 0x250]
mov eax, dword [edx + 0x1c]
xor edx, edx
mov dword [ebx + 0x158], eax
mov dword [ebx + 0x15c], edx
mov ecx, dword [ebx + 0x250]
mov ax, word [ecx]
mov word [ebx + 0x160], ax
mov ecx, dword [ebx + 0x250]
mov al, byte [ecx + 2]
mov byte [ebx + 0x162], al
mov ecx, dword [ebx + 0x250]
mov al, byte [ecx + 3]
mov byte [ebx + 0x163], al
mov ecx, dword [ebx + 0x250]
mov eax, dword [ecx + 4]
mov dword [ebx + 0x164], eax
mov ecx, dword [ebx + 0x250]
mov eax, dword [ecx + 8]
mov dword [ebx + 0x168], eax
mov ecx, dword [ebx + 0x250]
mov eax, dword [ecx + 0xc]
mov dword [ebx + 0x16c], eax
mov ecx, dword [ebx + 0x250]
mov eax, dword [ecx + 0x10]
mov dword [ebx + 0x170], eax
mov ecx, dword [ebx + 0x250]
mov eax, dword [ecx + 0x14]
mov dword [ebx + 0x174], eax
mov ecx, dword [ebx + 0x250]
mov eax, dword [ecx + 0x1c]
mov dword [ebx + 0x178], eax
mov dword [ebx + 0x17c], edx
mov ecx, dword [ebx + 0x250]
mov eax, dword [ecx + 0x20]
mov dword [ebx + 0x180], eax
mov ecx, dword [ebx + 0x250]
mov eax, dword [ecx + 0x24]
mov dword [ebx + 0x184], eax
mov eax, dword [ebx + 0x250]
mov cx, word [eax + 0x28]
mov word [ebx + 0x188], cx
mov cx, word [eax + 0x2a]
mov word [ebx + 0x18a], cx
mov cx, word [eax + 0x2c]
mov word [ebx + 0x18c], cx
mov cx, word [eax + 0x2e]
mov word [ebx + 0x18e], cx
mov cx, word [eax + 0x30]
mov word [ebx + 0x190], cx
mov cx, word [eax + 0x32]
mov word [ebx + 0x192], cx
mov ecx, dword [eax + 0x34]
mov dword [ebx + 0x194], ecx
mov ecx, dword [eax + 0x38]
mov dword [ebx + 0x198], ecx
mov ecx, dword [eax + 0x3c]
mov dword [ebx + 0x19c], ecx
mov ecx, dword [eax + 0x40]
mov dword [ebx + 0x1a0], ecx
mov cx, word [eax + 0x44]
mov word [ebx + 0x1a4], cx
mov cx, word [eax + 0x46]
mov word [ebx + 0x1a6], cx
mov ecx, dword [eax + 0x48]
mov dword [ebx + 0x1a8], ecx
mov dword [ebx + 0x1ac], edx
mov ecx, dword [eax + 0x4c]
lea esi, [eax + 0x60]
mov dword [ebx + 0x1b0], ecx
mov dword [ebx + 0x1b4], edx
mov ecx, dword [eax + 0x50]
lea edi, [ebx + 0x1d0]
mov dword [ebx + 0x1b8], ecx
mov dword [ebx + 0x1bc], edx
mov ecx, dword [eax + 0x54]
mov dword [ebp - 0x24], edx
mov dword [ebx + 0x1c0], ecx
mov dword [ebx + 0x1c4], edx
mov ecx, dword [eax + 0x58]
mov dword [ebx + 0x1c8], ecx
mov ecx, dword [eax + 0x5c]
mov dword [ebx + 0x1cc], ecx
mov ecx, 0x20
rep movsd dword es:[edi], dword [esi]
mov eax, dword [eax + 0x24]
mov edi, dword [ebp - 0x30]
mov esi, dword [ebp - 0x2c]
mov dword [ebp - 0x28], eax
jmp 0x42c750
cmp ax, 0x20b
jne 0x42c737
xor eax, eax
mov ax, word [ebx + 0x134]
cmp eax, 0xf0
mov dword [ebp - 0x14], eax
jbe 0x42c668
mov eax, 0xf0
mov dword [ebp - 0x14], eax
mov edx, dword [ebx + 0x20]
lea ecx, [ebx + 0x2e4]
push edx
push eax
push esi
push edi
push ecx
mov ecx, ebx
call fcn.0042e940
test eax, eax
jne 0x42c686
call fcn.00426dd0
lea eax, [ebx + 0x2e4]
lea edx, [edi + 0x40]
mov dword [ebx + 0x254], eax
lea ecx, [eax + 0x70]
mov dword [ebx + 0x258], ecx
mov dword [ebx + 0x408], edx
cmp dword [eax + 0x6c], 4
ja 0x42c6b6
mov dword [ebx + 0x40c], 0xffffffff
jmp 0x42c6c2
add edi, 0x90
mov dword [ebx + 0x40c], edi
mov ecx, dword [ebx + 0x350]
lea eax, [ebx + 0x2e4]
mov dword [ebx + 0x13c], ecx
lea edi, [ebx + 0x160]
mov edx, dword [eax + 0x10]
mov esi, eax
mov dword [ebx + 0x140], edx
mov ecx, dword [eax + 0x20]
mov dword [ebx + 0x144], ecx
mov edx, dword [eax + 0x38]
mov dword [ebx + 0x14c], edx
mov ecx, dword [eax + 0x24]
mov dword [ebx + 0x148], ecx
mov edx, dword [eax + 4]
mov dword [ebx + 0x150], edx
mov ecx, dword [eax + 0x18]
mov dword [ebx + 0x158], ecx
mov edx, dword [eax + 0x1c]
mov ecx, 0x3c
mov dword [ebx + 0x15c], edx
rep movsd dword es:[edi], dword [esi]
mov eax, dword [eax + 0x24]
mov edi, dword [ebp - 0x30]
mov esi, dword [ebp - 0x2c]
mov dword [ebp - 0x28], eax
mov dword [ebp - 0x24], 0
jmp 0x42c750
push 0x4b4a90
push 1
push 0x13d
push str.D:_root.ddev360C360PubSrc360Base360BaseQHPEParser.cpp
call fcn.00426c70
add esp, 0x10
mov ecx, dword [ebx + 0x13c]
mov eax, 0x10
cmp ecx, eax
jbe 0x42c765
mov dword [ebx + 0x13c], eax
xor eax, eax
mov ecx, ebx
mov ax, word [ebx + 0x134]
cdq
add edi, eax
adc esi, edx
call fcn.0042f340
test eax, eax
jne 0x42c783
call fcn.00426dd0
xor eax, eax
mov ax, word [ebx + 0x126]
mov dword [ebx + 0x3d4], eax
lea ecx, [eax + eax*4]
shl ecx, 3
push ecx
call fcn.00429900
add esp, 4
mov dword [ebx + 0x3d8], eax
test eax, eax
jne 0x42c7c3
push 0x4b3e88
push eax
push 0x146
push str.D:_root.ddev360C360PubSrc360Base360BaseQHPEParser.cpp
call fcn.004264d0
add esp, 0x10
mov eax, dword [ebx + 0x3d4]
mov edx, dword [ebx + 0x20]
mov ecx, dword [ebx + 0x3d8]
push edx
lea eax, [eax + eax*4]
shl eax, 3
push eax
push esi
push edi
push ecx
mov ecx, ebx
call fcn.0042e940
test eax, eax
jne 0x42c7ed
call fcn.00426dd0
mov eax, dword [ebx + 0x3d4]
mov ecx, ebx
lea edx, [eax + eax*4]
shl edx, 3
add edi, edx
adc esi, 0
call fcn.0042efb0
test eax, eax
jne 0x42c80e
call fcn.00426dd0
mov ecx, dword [ebp - 0x28]
mov eax, dword [ebp - 0x24]
mov edx, ecx
push eax
add edx, edi
mov edi, eax
adc edi, esi
sub edx, 1
sbb edi, 0
push ecx
push edi
push edx
call fcn.00436580
mov ecx, dword [ebp - 0x24]
push ecx
mov ecx, dword [ebp - 0x28]
push ecx
push edx
push eax
call fcn.004364c0
mov dword [ebx + 0x18], eax
mov dword [ebx + 0x1c], edx
mov edx, dword [ebx + 0x3d4]
shl edx, 2
push edx
call fcn.00429900
add esp, 4
mov dword [ebx + 0x3dc], eax
test eax, eax
jne 0x42c874
push 0x4b3e88
push eax
push 0x14e
push str.D:_root.ddev360C360PubSrc360Base360BaseQHPEParser.cpp
call fcn.004264d0
add esp, 0x10
mov ecx, dword [ebx + 0x3d4]
mov edi, dword [ebx + 0x3dc]
shl ecx, 2
mov edx, ecx
xor eax, eax
shr ecx, 2
rep stosd dword es:[edi], eax
mov ecx, edx
and ecx, 3
rep stosb byte es:[edi], al
xor eax, eax
mov dword [ebp + 8], eax
cmp eax, dword [ebx + 0x3d4]
jae 0x42c993
mov ecx, dword [ebx + 0x3d8]
lea eax, [eax + eax*4]
push 8
lea edx, [ecx + eax*8]
lea eax, [ebp - 0x3c]
push edx
push eax
call dword [sym.imp.MSVCRT.dll_strncpy]
lea ecx, [ebp - 0x3c]
add esp, 0xc
test ecx, ecx
mov byte [ebp - 0x34], 0
jne 0x42c8cf
xor esi, esi
jmp 0x42c902
lea edx, [ebp - 0x3c]
push edx
call dword [sym.imp.KERNEL32.dll_lstrlenA]
mov edi, eax
inc edi
lea eax, [edi + edi]
add eax, 3
and al, 0xfc
call fcn.00436520
mov esi, esp
push edi
push esi
lea eax, [ebp - 0x3c]
push 0xffffffffffffffff
push eax
push 0
push 0
mov word [esi], 0
call dword [sym.imp.KERNEL32.dll_MultiByteToWideChar]
push esi
call dword [sym.imp.MSVCRT.dll_wcslen]
mov edi, eax
inc edi
lea ecx, [edi + edi]
push ecx
call fcn.00429900
mov edx, dword [ebx + 0x3dc]
mov ecx, dword [ebp + 8]
add esp, 8
mov dword [edx + ecx*4], eax
mov eax, dword [ebx + 0x3dc]
cmp dword [eax + ecx*4], 0
jne 0x42c949
push 0x4b3e88
push 0
push 0x159
push str.D:_root.ddev360C360PubSrc360Base360BaseQHPEParser.cpp
call fcn.004264d0
add esp, 0x10
cmp edi, 0x7fffffff
ja 0x42c987
mov edx, dword [ebx + 0x3dc]
mov eax, dword [ebp + 8]
test edi, edi
mov eax, dword [edx + eax*4]
mov ecx, esi
je 0x42c987
test edi, edi
je 0x42c97f
mov dx, word [ecx]
test dx, dx
je 0x42c97b
mov word [eax], dx
add eax, 2
add ecx, 2
dec edi
jmp 0x42c963
test edi, edi
jne 0x42c982
sub eax, 2
mov word [eax], 0
mov eax, dword [ebp + 8]
inc eax
mov dword [ebp + 8], eax
jmp 0x42c898
mov ecx, dword [ebx + 0x3d4]
mov esi, 1
shl ecx, 2
push ecx
mov dword [ebx + 0xa0], esi
call fcn.00429900
xor edi, edi
add esp, 4
cmp eax, edi
mov dword [ebx + 0x3e0], eax
jne 0x42c9d4
push 0x4b3e88
push edi
push 0x164
push str.D:_root.ddev360C360PubSrc360Base360BaseQHPEParser.cpp
call fcn.004264d0
add esp, 0x10
mov ecx, ebx
call fcn.0042eea0
mov edx, dword [ebx + 0x3d4]
mov eax, dword [ebx + 0x3e0]
mov eax, dword [eax + edx*4 - 4]
mov edx, dword [ebx + 0x3d8]
lea ecx, [eax + eax*4]
lea eax, [edx + ecx*8]
mov ecx, dword [edx + ecx*8 + 0x14]
mov edx, dword [eax + 0x10]
mov eax, dword [ebx + 0x10]
add ecx, edx
xor edx, edx
sub eax, ecx
mov ecx, dword [ebx + 0x14]
mov dword [ebx + 0x3e8], eax
sbb ecx, edx
mov eax, ecx
mov dword [ebx + 0x3ec], ecx
cmp eax, edi
jg 0x42ca34
jl 0x42ca28
cmp dword [ebx + 0x3e8], edi
jae 0x42ca34
mov dword [ebx + 0x3e8], edi
mov dword [ebx + 0x3ec], edi
cmp dword [ebx + 0x1cc], 2
ja 0x42ca49
mov dword [ebx + 0x410], 0xffffffff
jmp 0x42ca84
mov ecx, dword [ebx + 0x258]
mov edx, dword [ebx + 4]
lea eax, [ebx + 4]
mov ecx, dword [ecx + 0x10]
push ecx
push eax
call dword [edx]
add esp, 8
mov dword [ebp - 0x2c], edx
mov dword [ebx + 0x410], eax
jmp 0x42ca84
test esi, esi
mov dword [ebp - 4], 0xffffffff
jne 0x42ca96
mov ecx, ebx
call fcn.0042cae0
mov ecx, dword [ebp - 0xc]
lea esp, [ebp - 0x48]
mov eax, esi
mov dword fs:[0], ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 4