Function at 0x457500
Capabilities:
Parse pe header

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x463370
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 + 0xc]
cmp eax, 0xffffffff
mov dword [ebp - 0x1c], ebx
mov dword [ebp - 4], edi
je 0x45753e
call fcn.00457eb0
mov eax, dword [ebp + 8]
push eax
mov dword [ebx + 0xc], eax
call dword [0x464184]
cmp eax, 1
je 0x457566
push 0x4795ec
push 1
push 0x6d
push str.D:_root.ddev360C360PubSrc360BaseQHPEParser.cpp
call fcn.004572e0
add esp, 0x10
mov eax, dword [ebx + 0xc]
push edi
push edi
push edi
push eax
call dword [0x4641cc]
cmp eax, 0xffffffff
jne 0x45758d
push 0x47a224
push edi
push 0x71
push str.D:_root.ddev360C360PubSrc360BaseQHPEParser.cpp
call fcn.00456bf0
add esp, 0x10
mov ecx, dword [ebx + 0xc]
lea eax, [ebx + 0x10]
push eax
push ecx
call dword [0x464194]
test eax, eax
jne 0x4575b4
push str.GetFileSizeEx__
push edi
push 0x73
push str.D:_root.ddev360C360PubSrc360BaseQHPEParser.cpp
call fcn.00456bf0
add esp, 0x10
cmp dword [ebp + 0xc], edi
jne 0x4575be
mov dword [ebx + 0x20], edi
jmp 0x4575c5
mov dword [ebx + 0x20], 1
lea ecx, [ebx + 0x24]
call fcn.0045c990
push 0x10000
call fcn.00456b70
add esp, 4
cmp eax, edi
mov dword [ebx + 0x7c], eax
jne 0x4575f6
push 0x479668
push edi
push 0x7b
push str.D:_root.ddev360C360PubSrc360BaseQHPEParser.cpp
call fcn.00456bf0
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
push edi
mov word [esi], di
mov eax, dword [ebx + 0xc]
push edx
push 2
push esi
push eax
call dword [0x46419c]
test eax, eax
jne 0x457657
push str.ReadFile__
push edi
push 0x88
push str.D:_root.ddev360C360PubSrc360BaseQHPEParser.cpp
call fcn.00456bf0
add esp, 0x10
cmp word [esi], 0x5a4d
je 0x457677
push 0x47a1d4
push 1
push 0x89
push str.D:_root.ddev360C360PubSrc360BaseQHPEParser.cpp
call fcn.004572e0
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.00459750
cmp eax, edi
jne 0x457694
call fcn.00457410
mov eax, dword [ebx + 0x120]
mov edx, dword [ebx + 0x14]
xor ecx, ecx
add eax, 4
cmp ecx, edx
jl 0x4576d0
jg 0x4576ad
cmp eax, dword [ebx + 0x10]
jbe 0x4576d0
push str.DOS
push 1
push 0x94
push str.D:_root.ddev360C360PubSrc360BaseQHPEParser.cpp
mov dword [ebx + 0xa0], 2
call fcn.004572e0
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.00459750
test eax, eax
jne 0x4576f7
call fcn.00457410
mov ecx, dword [ebp - 0x18]
mov eax, ecx
and eax, 0xffff
sub eax, 0x454c
je 0x45777d
sub eax, 2
je 0x457740
sub eax, 2
je 0x45772a
push str.DOS
push 1
mov dword [ebx + 0xa0], 2
push 0xae
jmp 0x457793
cmp ecx, 0x4550
je 0x4577a0
push 0x47a1ac
push 1
push 0xaa
jmp 0x457793
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.00459750
test eax, eax
jne 0x45776f
call fcn.00457410
push 0x47a194
push 1
push 0xa2
jmp 0x457793
push 0x47a17c
push 1
mov dword [ebx + 0xa0], 4
push 0xa6
push str.D:_root.ddev360C360PubSrc360BaseQHPEParser.cpp
call fcn.004572e0
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.00459750
test eax, eax
jne 0x4577cf
call fcn.00457410
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 0x457817
cmp ax, 0x200
je 0x457817
cmp ax, 0x8664
je 0x457817
push str._rN_e
push 1
push 0xbc
push str.D:_root.ddev360C360PubSrc360BaseQHPEParser.cpp
mov dword [ebx + 0xa0], 5
call fcn.004572e0
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.00459750
test eax, eax
jne 0x457836
call fcn.00457410
mov ax, word [ebx + 0x138]
cmp ax, 0x10b
jne 0x457a9a
xor eax, eax
mov ax, word [ebx + 0x134]
cmp eax, 0xe0
mov dword [ebp - 0x14], eax
jbe 0x457862
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.00459750
test eax, eax
jne 0x457880
call fcn.00457410
lea eax, [ebx + 0x2e4]
mov dword [ebx + 0x250], eax
add eax, 0x60
mov dword [ebx + 0x258], eax
mov eax, dword [ebx + 0x250]
mov ecx, dword [eax + 0x5c]
mov dword [ebx + 0x13c], ecx
mov edx, dword [ebx + 0x250]
mov eax, dword [edx + 0x10]
mov dword [ebx + 0x140], eax
mov ecx, dword [ebx + 0x250]
mov edx, dword [ecx + 0x20]
mov dword [ebx + 0x144], edx
mov eax, dword [ebx + 0x250]
mov ecx, dword [eax + 0x38]
mov dword [ebx + 0x14c], ecx
mov edx, dword [ebx + 0x250]
mov eax, dword [edx + 0x24]
mov dword [ebx + 0x148], eax
mov ecx, dword [ebx + 0x250]
mov edx, dword [ecx + 4]
mov dword [ebx + 0x150], edx
mov eax, dword [ebx + 0x250]
xor edx, edx
mov ecx, dword [eax + 0x1c]
mov dword [ebx + 0x158], ecx
mov dword [ebx + 0x15c], edx
mov eax, dword [ebx + 0x250]
mov cx, word [eax]
mov word [ebx + 0x160], cx
mov eax, dword [ebx + 0x250]
mov cl, byte [eax + 2]
mov byte [ebx + 0x162], cl
mov eax, dword [ebx + 0x250]
mov cl, byte [eax + 3]
mov byte [ebx + 0x163], cl
mov eax, dword [ebx + 0x250]
mov ecx, dword [eax + 4]
mov dword [ebx + 0x164], ecx
mov eax, dword [ebx + 0x250]
mov ecx, dword [eax + 8]
mov dword [ebx + 0x168], ecx
mov eax, dword [ebx + 0x250]
mov ecx, dword [eax + 0xc]
mov dword [ebx + 0x16c], ecx
mov eax, dword [ebx + 0x250]
mov ecx, dword [eax + 0x10]
mov dword [ebx + 0x170], ecx
mov eax, dword [ebx + 0x250]
mov ecx, dword [eax + 0x14]
mov dword [ebx + 0x174], ecx
mov eax, dword [ebx + 0x250]
mov ecx, dword [eax + 0x1c]
mov dword [ebx + 0x178], ecx
mov dword [ebx + 0x17c], edx
mov eax, dword [ebx + 0x250]
mov ecx, dword [eax + 0x20]
mov dword [ebx + 0x180], ecx
mov ecx, dword [eax + 0x24]
mov dword [ebx + 0x184], ecx
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 esi, dword [ebp - 0x2c]
mov edi, dword [ebp - 0x30]
mov dword [ebp - 0x28], eax
jmp 0x457b77
cmp ax, 0x20b
jne 0x457b5e
xor eax, eax
mov ax, word [ebx + 0x134]
cmp eax, 0xf0
mov dword [ebp - 0x14], eax
jbe 0x457abf
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.00459750
test eax, eax
jne 0x457add
call fcn.00457410
lea eax, [ebx + 0x2e4]
lea edi, [ebx + 0x160]
mov dword [ebx + 0x254], eax
mov esi, eax
lea ecx, [eax + 0x70]
mov dword [ebp - 0x24], 0
mov dword [ebx + 0x258], ecx
mov edx, dword [eax + 0x6c]
mov dword [ebx + 0x13c], edx
mov ecx, dword [eax + 0x10]
mov dword [ebx + 0x140], ecx
mov edx, dword [eax + 0x20]
mov dword [ebx + 0x144], edx
mov ecx, dword [eax + 0x38]
mov dword [ebx + 0x14c], ecx
mov edx, dword [eax + 0x24]
mov dword [ebx + 0x148], edx
mov ecx, dword [eax + 4]
mov dword [ebx + 0x150], ecx
mov edx, dword [eax + 0x18]
mov dword [ebx + 0x158], edx
mov ecx, dword [eax + 0x1c]
mov dword [ebx + 0x15c], ecx
mov ecx, 0x3c
rep movsd dword es:[edi], dword [esi]
mov edx, dword [eax + 0x24]
mov esi, dword [ebp - 0x2c]
mov edi, dword [ebp - 0x30]
mov dword [ebp - 0x28], edx
jmp 0x457b77
push 0x47a13c
push 1
push 0x106
push str.D:_root.ddev360C360PubSrc360BaseQHPEParser.cpp
call fcn.004572e0
add esp, 0x10
mov ecx, dword [ebx + 0x13c]
mov eax, 0x10
cmp ecx, eax
jbe 0x457b8c
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.0045a1b0
test eax, eax
jne 0x457baa
call fcn.00457410
xor eax, eax
mov ax, word [ebx + 0x126]
mov dword [ebx + 0x3d4], eax
lea eax, [eax + eax*4]
shl eax, 3
push eax
call fcn.00456b70
add esp, 4
mov dword [ebx + 0x3d8], eax
test eax, eax
jne 0x457bea
push 0x479668
push eax
push 0x10f
push str.D:_root.ddev360C360PubSrc360BaseQHPEParser.cpp
call fcn.00456bf0
add esp, 0x10
mov eax, dword [ebx + 0x3d4]
mov ecx, dword [ebx + 0x20]
push ecx
mov ecx, ebx
lea edx, [eax + eax*4]
mov eax, dword [ebx + 0x3d8]
shl edx, 3
push edx
push esi
push edi
push eax
call fcn.00459750
test eax, eax
jne 0x457c14
call fcn.00457410
mov eax, dword [ebx + 0x3d4]
lea ecx, [eax + eax*4]
shl ecx, 3
add edi, ecx
mov ecx, ebx
adc esi, 0
call fcn.00459e30
test eax, eax
jne 0x457c35
call fcn.00457410
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.0045f4f0
mov ecx, dword [ebp - 0x24]
push ecx
mov ecx, dword [ebp - 0x28]
push ecx
push edx
push eax
call fcn.0045f4b0
mov dword [ebx + 0x18], eax
mov dword [ebx + 0x1c], edx
mov edx, dword [ebx + 0x3d4]
shl edx, 2
push edx
call fcn.00456b70
add esp, 4
mov dword [ebx + 0x3dc], eax
test eax, eax
jne 0x457c9b
push 0x479668
push eax
push 0x117
push str.D:_root.ddev360C360PubSrc360BaseQHPEParser.cpp
call fcn.00456bf0
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 0x457dba
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 [0x464310]
lea ecx, [ebp - 0x3c]
add esp, 0xc
test ecx, ecx
mov byte [ebp - 0x34], 0
jne 0x457cf6
xor esi, esi
jmp 0x457d29
lea edx, [ebp - 0x3c]
push edx
call dword [0x464250]
mov edi, eax
inc edi
lea eax, [edi + edi]
add eax, 3
and al, 0xfc
call fcn.00452e80
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 [0x4641ac]
push esi
call dword [0x4643b8]
mov edi, eax
inc edi
lea ecx, [edi + edi]
push ecx
call fcn.00456b70
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 0x457d70
push 0x479668
push 0
push 0x122
push str.D:_root.ddev360C360PubSrc360BaseQHPEParser.cpp
call fcn.00456bf0
add esp, 0x10
cmp edi, 0x7fffffff
ja 0x457dae
mov edx, dword [ebx + 0x3dc]
mov eax, dword [ebp + 8]
test edi, edi
mov eax, dword [edx + eax*4]
mov ecx, esi
je 0x457dae
test edi, edi
je 0x457da6
mov dx, word [ecx]
test dx, dx
je 0x457da2
mov word [eax], dx
add eax, 2
add ecx, 2
dec edi
jmp 0x457d8a
test edi, edi
jne 0x457da9
sub eax, 2
mov word [eax], 0
mov eax, dword [ebp + 8]
inc eax
mov dword [ebp + 8], eax
jmp 0x457cbf
mov ecx, dword [ebx + 0x3d4]
shl ecx, 2
push ecx
call fcn.00456b70
xor esi, esi
add esp, 4
cmp eax, esi
mov dword [ebx + 0x3e0], eax
jne 0x457df0
push 0x479668
push esi
push 0x129
push str.D:_root.ddev360C360PubSrc360BaseQHPEParser.cpp
call fcn.00456bf0
add esp, 0x10
mov ecx, ebx
call fcn.00459d20
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, esi
jg 0x457e50
jl 0x457e44
cmp dword [ebx + 0x3e8], esi
jae 0x457e50
mov dword [ebx + 0x3e8], esi
mov dword [ebx + 0x3ec], esi
mov esi, 1
mov dword [ebx + 0xa0], esi
jmp 0x457e77
test esi, esi
mov dword [ebp - 4], 0xffffffff
jne 0x457e89
mov ecx, ebx
call fcn.00457eb0
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 8