Function at 0x470bb0
Capabilities:
Parse pe header

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
sub esp, 0x54
mov eax, dword [0x51c100]
xor eax, esp
mov dword [esp + 0x50], eax
mov eax, dword [ebp + 8]
push ebx
mov ebx, dword [ebp + 0xc]
push esi
mov esi, ecx
mov dword [esp + 0x24], eax
push edi
push 2
mov dword [esp + 0x28], edx
mov eax, dword [esi + 0x44]
mov edi, dword [esi + 0x40]
mov dword [esp + 0x18], eax
mov dword [esp + 0x10], eax
lea eax, [esp + 0x3c]
push eax
push 0
push 0
mov dword [esp + 0x28], esi
mov dword [esp + 0x64], ebx
mov dword [esp + 0x20], edi
mov dword [esp + 0x2c], edi
call fcn.0047b4a0
test al, al
je 0x470d58
mov eax, 0x5a4d
cmp word [esp + 0x38], ax
jne 0x470d58
push 4
lea eax, [esp + 0x34]
mov ecx, esi
push eax
push 0
push 0x3c
call fcn.0047b4a0
test al, al
je 0x470d58
push 4
lea eax, [esp + 0x40]
mov ecx, esi
push eax
push 0
push dword [esp + 0x3c]
call fcn.0047b4a0
test al, al
je 0x470d58
cmp dword [esp + 0x3c], 0x4550
jne 0x470d58
lea eax, [esp + 0x34]
mov dword [esp + 0x34], 0x14
push eax
lea eax, [esp + 0x44]
mov ecx, esi
push eax
call fcn.0047b170
test al, al
je 0x470d58
cmp dword [esp + 0x34], 0x14
je 0x470c95
mov dword [esi + 0x60], 0x1e
jmp 0x470d58
mov ecx, dword [esp + 0x30]
mov edx, 0x8664
mov ax, word [esp + 0x40]
add ecx, 0x98
cmp ax, dx
je 0x470ccc
mov edx, 0x200
cmp ax, dx
je 0x470ccc
mov edx, 0x284
cmp ax, dx
je 0x470ccc
mov edx, 0xaa64
cmp ax, dx
jne 0x470ccf
add ecx, 0x10
push 4
lea eax, [esp + 0x38]
push eax
push 0
push ecx
mov ecx, esi
call fcn.0047b4a0
test al, al
je 0x470d58
mov eax, dword [esp + 0x34]
test eax, eax
je 0x470d58
mov edi, eax
xor eax, eax
mov dword [esp + 0x1c], edi
mov dword [esp + 0xc], eax
cmp edi, 7
jbe 0x470d54
mov ebx, dword [esp + 0xc]
mov eax, 7
dec eax
lea edx, [esp + 0x2f]
mov dword [esp + 0x20], eax
mov ecx, edi
sub ecx, 1
mov eax, ebx
push 1
sbb eax, 0
mov dword [esp + 0x20], ecx
push edx
push eax
push ecx
mov ecx, esi
mov dword [esp + 0x1c], eax
call fcn.0047b4a0
test al, al
je 0x470d40
cmp byte [esp + 0x2f], 0
jne 0x470d40
mov edi, dword [esp + 0x1c]
mov ebx, dword [esp + 0xc]
mov eax, dword [esp + 0x20]
test eax, eax
jne 0x470d06
mov dword [esp + 0xc], ebx
mov ebx, dword [esp + 0x54]
mov dword [esp + 0x1c], edi
mov edi, dword [esp + 0x10]
mov ecx, dword [esp + 0x14]
test ecx, ecx
jl 0x470e0c
jg 0x470d6f
cmp edi, 0x48
jb 0x470e0c
mov esi, edi
lea eax, [esp + 0x54]
push 8
sub esi, 8
mov edi, ecx
mov ecx, dword [esp + 0x1c]
push eax
sbb edi, 0
push edi
push esi
call fcn.0047b4a0
test al, al
je 0x470dbf
lea eax, [esp + 0x54]
cmp dword [eax], 0x53575341
jne 0x470dbf
cmp dword [eax + 4], 0x42336769
jne 0x470dbf
mov dword [esp + 0xc], 0x40
test ebx, ebx
je 0x4710d6
mov dword [ebx], 7
jmp 0x4710d6
mov eax, dword [esp + 0x1c]
mov ecx, dword [esp + 0x10]
cmp eax, ecx
jne 0x470dd5
mov edx, dword [esp + 0x14]
cmp dword [esp + 0xc], edx
je 0x470e10
mov edi, dword [esp + 0xc]
mov esi, eax
mov ecx, dword [esp + 0x18]
lea eax, [esp + 0x54]
push 8
sub esi, 8
push eax
sbb edi, 0
push edi
push esi
call fcn.0047b4a0
test al, al
je 0x470e0c
lea eax, [esp + 0x54]
cmp dword [eax], 0x53575341
jne 0x470e0c
cmp dword [eax + 4], 0x42336769
je 0x470da4
mov ecx, dword [esp + 0x10]
mov eax, dword [esp + 0x14]
test eax, eax
jl 0x470f77
jg 0x470e2a
cmp ecx, 0xc0
jb 0x470eb9
mov esi, ecx
mov edi, eax
mov ecx, dword [esp + 0x18]
lea eax, [esp + 0x54]
push 8
sub esi, 0x80
push eax
sbb edi, 0
push edi
push esi
call fcn.0047b4a0
test al, al
je 0x470e66
lea eax, [esp + 0x54]
cmp dword [eax], 0x53575341
jne 0x470e66
cmp dword [eax + 4], 0x42336769
je 0x470da4
mov eax, dword [esp + 0x1c]
cmp eax, dword [esp + 0x10]
jne 0x470e7a
mov esi, dword [esp + 0x14]
cmp dword [esp + 0xc], esi
je 0x470ecc
mov edi, dword [esp + 0xc]
mov esi, eax
mov ecx, dword [esp + 0x18]
lea eax, [esp + 0x54]
push 8
sub esi, 0x80
push eax
sbb edi, 0
push edi
push esi
call fcn.0047b4a0
test al, al
je 0x470ecc
lea eax, [esp + 0x54]
cmp dword [eax], 0x53575341
jne 0x470ecc
cmp dword [eax + 4], 0x42336769
jne 0x470ecc
jmp 0x470da4
test eax, eax
jl 0x470f77
jg 0x470ecc
cmp ecx, 0x48
jb 0x470f77
mov esi, dword [esp + 0x10]
lea eax, [esp + 0x54]
mov edi, dword [esp + 0x14]
sub esi, 8
mov ecx, dword [esp + 0x18]
push 8
push eax
sbb edi, 0
push edi
push esi
call fcn.0047b4a0
test al, al
je 0x470f20
lea eax, [esp + 0x54]
cmp dword [eax], 0x53575341
jne 0x470f20
cmp dword [eax + 4], 0x42326769
jne 0x470f20
mov dword [esp + 0xc], 0x40
test ebx, ebx
je 0x4710d6
mov dword [ebx], 5
jmp 0x4710d6
mov eax, dword [esp + 0x1c]
mov ecx, dword [esp + 0x10]
cmp eax, ecx
jne 0x470f36
mov edx, dword [esp + 0x14]
cmp dword [esp + 0xc], edx
je 0x470f7d
mov edi, dword [esp + 0xc]
mov esi, eax
mov ecx, dword [esp + 0x18]
lea eax, [esp + 0x54]
push 8
sub esi, 8
push eax
sbb edi, 0
push edi
push esi
call fcn.0047b4a0
test al, al
je 0x470f6d
lea eax, [esp + 0x54]
cmp dword [eax], 0x53575341
jne 0x470f6d
cmp dword [eax + 4], 0x42326769
je 0x470f05
mov ecx, dword [esp + 0x10]
mov eax, dword [esp + 0x14]
jmp 0x470f7f
mov ecx, dword [esp + 0x10]
jmp 0x470f7f
mov eax, edx
test eax, eax
jl 0x471148
jg 0x470f92
cmp ecx, 0x78
jb 0x47101d
mov edi, dword [esp + 0x14]
lea eax, [esp + 0x54]
mov esi, ecx
mov ecx, dword [esp + 0x18]
push 8
sub esi, 0x38
push eax
sbb edi, 0
push edi
push esi
call fcn.0047b4a0
test al, al
je 0x470fcd
lea eax, [esp + 0x54]
cmp dword [eax], 0x53575341
jne 0x470fcd
cmp dword [eax + 4], 0x42326769
je 0x470f05
mov eax, dword [esp + 0x1c]
cmp eax, dword [esp + 0x10]
jne 0x470fe1
mov esi, dword [esp + 0x14]
cmp dword [esp + 0xc], esi
je 0x471030
mov edi, dword [esp + 0xc]
mov esi, eax
mov ecx, dword [esp + 0x18]
lea eax, [esp + 0x54]
push 8
sub esi, 0x38
push eax
sbb edi, 0
push edi
push esi
call fcn.0047b4a0
test al, al
je 0x471030
lea eax, [esp + 0x54]
cmp dword [eax], 0x53575341
jne 0x471030
cmp dword [eax + 4], 0x42326769
jne 0x471030
jmp 0x470f05
test eax, eax
jl 0x471148
jg 0x471030
cmp ecx, 0x30
jb 0x471148
mov esi, dword [esp + 0x10]
lea eax, [esp + 0x54]
mov edi, dword [esp + 0x14]
sub esi, 8
mov ecx, dword [esp + 0x18]
push 8
push eax
sbb edi, 0
push edi
push esi
call fcn.0047b4a0
test al, al
je 0x471069
lea eax, [esp + 0x54]
cmp dword [eax], 0x53575341
jne 0x471069
cmp dword [eax + 4], 0x646e6769
je 0x4710c4
mov eax, dword [esp + 0x1c]
cmp eax, dword [esp + 0x10]
jne 0x471081
mov ecx, dword [esp + 0x14]
cmp dword [esp + 0xc], ecx
je 0x471148
mov edi, dword [esp + 0xc]
mov esi, eax
mov ecx, dword [esp + 0x18]
lea eax, [esp + 0x54]
push 8
sub esi, 8
push eax
sbb edi, 0
push edi
push esi
call fcn.0047b4a0
test al, al
je 0x471148
lea eax, [esp + 0x54]
cmp dword [eax], 0x53575341
jne 0x471148
cmp dword [eax + 4], 0x646e6769
jne 0x471148
mov dword [esp + 0xc], 0x28
test ebx, ebx
je 0x4710d6
mov dword [ebx], 1
mov ebx, dword [esp + 0xc]
sub esi, ebx
push ecx
mov ecx, dword [esp + 0x1c]
sbb edi, 0
push edi
push esi
call fcn.0047b0d0
mov ecx, dword [esp + 0x24]
mov al, 1
mov byte [esp + 0x2f], al
test ecx, ecx
je 0x471129
lea eax, [esp + 0x30]
mov dword [esp + 0x30], ebx
push eax
push ecx
mov ecx, dword [esp + 0x20]
call fcn.0047b170
test al, al
je 0x471121
cmp dword [esp + 0x30], ebx
je 0x471125
mov eax, dword [esp + 0x18]
mov dword [eax + 0x60], 0x1e
xor al, al
jmp 0x471129
mov al, byte [esp + 0x2f]
mov ecx, dword [esp + 0x28]
test ecx, ecx
je 0x47114a
mov dword [ecx], esi
mov dword [ecx + 4], edi
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0x50]
xor ecx, esp
call fcn.004a057b
mov esp, ebp
pop ebp
ret
xor al, al
mov ecx, dword [esp + 0x5c]
pop edi
pop esi
pop ebx
xor ecx, esp
call fcn.004a057b
mov esp, ebp
pop ebp
ret