Function at 0x40d3a0
Capabilities:
Parse pe header

Disassembly:
push ebx
mov ebx, esp
sub esp, 8
and esp, 0xfffffff0
add esp, 4
push ebp
mov ebp, dword [ebx + 4]
mov dword [esp + 4], ebp
mov ebp, esp
sub esp, 0xe8
push esi
push edi
mov edi, edx
mov edx, ecx
mov dword [ebp - 0xc], edx
mov eax, edi
cmp dword [edi + 0x14], 0x10
jb 0x40d3cf
mov eax, dword [edi]
lea esi, [edi + 0x10]
mov dword [esi], 0
mov byte [eax], 0
mov eax, dword [edx + 4]
mov ecx, dword [edx]
sub eax, ecx
mov dword [ebp - 0x18], esi
cmp eax, 0x1000
jbe 0x40d48d
mov eax, dword [ecx + 0x3c]
mov edx, 0x5a4d
add eax, ecx
mov dword [ebp - 0x10], eax
cmp word [ecx], dx
jne 0x40d48d
cmp dword [eax], 0x4550
jne 0x40d48d
movzx ecx, word [eax + 0x18]
mov edx, 0x108
mov dword [ebp - 4], 0x20b
cmp cx, word [ebp - 4]
mov dword [ebp - 8], 0xf8
cmovne edx, dword [ebp - 8]
add edx, eax
mov dword [ebp - 0x1c], 0xa8
movzx eax, word [eax + 6]
cmp cx, word [ebp - 4]
lea eax, [eax + eax*4]
lea eax, [edx + eax*8]
mov dword [ebp - 8], eax
mov eax, 0xb8
cmovne eax, dword [ebp - 0x1c]
add eax, dword [ebp - 0x10]
mov dword [ebp - 4], eax
mov eax, dword [eax]
mov dword [ebp - 0x10], eax
test eax, eax
je 0x40d48d
mov ecx, dword [ebp - 4]
mov ecx, dword [ecx + 4]
test ecx, ecx
je 0x40d48d
cmp edx, dword [ebp - 8]
je 0x40d48d
nop
cmp eax, dword [edx + 0xc]
jb 0x40d485
mov esi, dword [ebp - 4]
mov eax, dword [edx + 8]
add eax, dword [edx + 0xc]
cmp dword [esi], eax
jb 0x40d498
mov eax, dword [ebp - 0x10]
add edx, 0x28
cmp edx, dword [ebp - 8]
jne 0x40d470
xor al, al
pop edi
pop esi
mov esp, ebp
pop ebp
mov esp, ebx
pop ebx
ret
mov eax, dword [edx + 0x14]
sub eax, dword [edx + 0xc]
mov edx, esi
mov esi, dword [ebp - 0xc]
add eax, dword [edx]
mov edx, dword [esi]
mov esi, dword [ebp - 0x18]
add eax, edx
je 0x40d48d
cmp ecx, 0x1c
jb 0x40d48d
cmp dword [eax + 0xc], 2
je 0x40d4cf
sub ecx, 0x1c
add eax, 0x1c
cmp ecx, 0x1c
jae 0x40d4b3
xor al, al
pop edi
pop esi
mov esp, ebp
pop ebp
mov esp, ebx
pop ebx
ret
mov eax, dword [eax + 0x18]
add eax, edx
je 0x40d48d
mov ecx, dword [eax]
cmp ecx, 0x3031424e
jne 0x40d680
mov ecx, dword [eax + 8]
mov eax, dword [eax + 0xc]
mov edx, dword [esi]
mov dword [ebp - 0x10], eax
mov eax, dword [edi + 0x14]
mov dword [ebp - 0x1c], ecx
cmp edx, 0x10
jb 0x40d50f
mov ecx, edi
cmp eax, 0x10
jb 0x40d503
mov ecx, dword [edi]
mov dword [esi], 0x10
mov byte [ecx + 0x10], 0
jmp 0x40d558
mov ecx, 0x10
sub eax, edx
sub ecx, edx
mov dword [ebp - 0xc], ecx
cmp ecx, eax
ja 0x40d54a
cmp dword [edi + 0x14], 0x10
mov eax, edi
mov dword [esi], 0x10
jb 0x40d52f
mov eax, dword [edi]
push ecx
lea esi, [eax + edx]
push 0
push esi
call fcn.00522010
mov eax, dword [ebp - 0xc]
add esp, 0xc
mov byte [esi + eax], 0
mov esi, dword [ebp - 0x18]
jmp 0x40d558
push 0
push ecx
push dword [ebp - 0x14]
push ecx
mov ecx, edi
call fcn.00429a10
cmp dword [edi + 0x14], 0x10
mov eax, edi
mov dword [ebp - 0x30], 0xe30420e8
mov dword [ebp - 0x2c], 0x93239094
mov dword [ebp - 0x28], 0xdf03afee
mov dword [ebp - 0x24], 0x80d1b64
movaps xmm1, xmmword [ebp - 0x30]
movaps xmmword [ebp - 0xb0], xmm1
mov dword [ebp - 0x40], 0xbb3c10cd
mov dword [ebp - 0x3c], 0x9323c8b1
mov dword [ebp - 0x38], 0xdf03afee
mov dword [ebp - 0x34], 0x80d1b64
xorps xmm1, xmmword [ebp - 0x40]
movaps xmmword [ebp - 0xb0], xmm1
jb 0x40d5b0
mov eax, dword [edi]
push dword [ebp - 0x10]
lea ecx, [ebp - 0xb0]
push dword [ebp - 0x1c]
push ecx
push dword [esi]
push eax
call fcn.00402240
mov dword [ebp - 0x40], 0xe30420e8
mov edx, eax
mov eax, dword [esi]
add esp, 0x14
mov dword [ebp - 0x3c], 0x93239094
mov dword [ebp - 0x38], 0xdf03afee
mov dword [ebp - 0x34], 0x80d1b64
movaps xmm1, xmmword [ebp - 0x40]
movaps xmmword [ebp - 0xb0], xmm1
mov dword [ebp - 0x30], 0xbb3c10cd
mov dword [ebp - 0x2c], 0x9323c8b1
mov dword [ebp - 0x28], 0xdf03afee
mov dword [ebp - 0x24], 0x80d1b64
xorps xmm1, xmmword [ebp - 0x30]
movaps xmmword [ebp - 0xb0], xmm1
mov dword [ebp - 8], eax
cmp edx, eax
ja 0x40d63e
cmp dword [edi + 0x14], 0x10
jb 0x40d999
mov edi, dword [edi]
mov al, 1
mov dword [esi], edx
mov byte [edi + edx], 0
pop edi
pop esi
mov esp, ebp
pop ebp
mov esp, ebx
pop ebx
ret
mov ecx, edx
sub ecx, eax
mov eax, dword [edi + 0x14]
sub eax, dword [ebp - 8]
mov dword [ebp - 0xc], ecx
cmp ecx, eax
ja 0x40d9e6
cmp dword [edi + 0x14], 0x10
mov dword [esi], edx
jb 0x40d65d
mov edi, dword [edi]
mov esi, dword [ebp - 8]
push ecx
add esi, edi
push 0
push esi
call fcn.00522010
mov eax, dword [ebp - 0xc]
add esp, 0xc
mov byte [esi + eax], 0
mov al, 1
pop edi
pop esi
mov esp, ebp
pop ebp
mov esp, ebx
pop ebx
ret
cmp ecx, 0x53445352
jne 0x40d48d
movups xmm0, xmmword [eax + 4]
mov eax, dword [eax + 0x14]
mov edx, dword [esi]
mov dword [ebp - 0x10], eax
mov eax, dword [edi + 0x14]
movups xmmword [ebp - 0x30], xmm0
cmp edx, 0x30
jb 0x40d6b9
mov ecx, edi
cmp eax, 0x10
jb 0x40d6ad
mov ecx, dword [edi]
mov dword [esi], 0x30
mov byte [ecx + 0x30], 0
jmp 0x40d702
mov ecx, 0x30
sub eax, edx
sub ecx, edx
mov dword [ebp - 0xc], ecx
cmp ecx, eax
ja 0x40d6f4
cmp dword [edi + 0x14], 0x10
mov eax, edi
mov dword [esi], 0x30
jb 0x40d6d9
mov eax, dword [edi]
push ecx
lea esi, [eax + edx]
push 0
push esi
call fcn.00522010
mov eax, dword [ebp - 0xc]
add esp, 0xc
mov byte [esi + eax], 0
mov esi, dword [ebp - 0x18]
jmp 0x40d702
push 0
push ecx
push dword [ebp - 0x14]
push ecx
mov ecx, edi
call fcn.00429a10
cmp dword [edi + 0x14], 0x10
movzx ecx, byte [ebp - 0x23]
movzx eax, byte [ebp - 0x21]
movzx edx, byte [ebp - 0x22]
mov dword [ebp - 0xc], ecx
movzx ecx, byte [ebp - 0x24]
mov dword [ebp - 0x1c], ecx
movzx ecx, byte [ebp - 0x25]
mov dword [ebp - 8], ecx
movzx ecx, byte [ebp - 0x26]
mov dword [ebp - 4], ecx
movzx ecx, byte [ebp - 0x27]
mov dword [ebp - 0x70], 0xe30420e8
mov dword [ebp - 0x6c], 0xcb17f894
mov dword [ebp - 0x68], 0x87379fcb
mov dword [ebp - 0x64], 0x503f2b41
movaps xmm1, xmmword [ebp - 0x70]
mov dword [ebp - 0x60], 0x43027fc2
mov dword [ebp - 0x5c], 0xb30fdc4a
mov dword [ebp - 0x58], 0xb338d5d5
mov dword [ebp - 0x54], 0x5d1b73b7
movaps xmm2, xmmword [ebp - 0x60]
mov dword [ebp - 0x50], 0xf032a664
mov dword [ebp - 0x4c], 0xc7055dd0
mov dword [ebp - 0x48], 0xe768b207
mov dword [ebp - 0x44], 0xd17dbb5d
movaps xmm3, xmmword [ebp - 0x50]
mov dword [ebp - 0x18], ecx
movzx ecx, byte [ebp - 0x28]
movaps xmmword [ebp - 0xe0], xmm1
movaps xmmword [ebp - 0xd0], xmm2
movaps xmmword [ebp - 0xc0], xmm3
mov dword [ebp - 0xa0], 0xbb3c10cd
mov dword [ebp - 0x9c], 0x9323c8b1
mov dword [ebp - 0x98], 0xdf03afee
mov dword [ebp - 0x94], 0x80d1b64
xorps xmm1, xmmword [ebp - 0xa0]
mov dword [ebp - 0x90], 0x1b304fe7
mov dword [ebp - 0x8c], 0xeb3dec6f
mov dword [ebp - 0x88], 0xeb0ae5f0
mov dword [ebp - 0x84], 0x5294392
xorps xmm2, xmmword [ebp - 0x90]
mov dword [ebp - 0x80], 0xa8009641
mov dword [ebp - 0x7c], 0x9f376df5
mov dword [ebp - 0x78], 0xbf5a8222
mov dword [ebp - 0x74], 0xd17de378
xorps xmm3, xmmword [ebp - 0x80]
mov dword [ebp - 0x14], ecx
mov ecx, edi
movaps xmmword [ebp - 0xe0], xmm1
movaps xmmword [ebp - 0xd0], xmm2
movaps xmmword [ebp - 0xc0], xmm3
jb 0x40d846
mov ecx, dword [edi]
push dword [ebp - 0x10]
push eax
movzx eax, word [ebp - 0x2a]
push edx
push dword [ebp - 0xc]
push dword [ebp - 0x1c]
push dword [ebp - 8]
push dword [ebp - 4]
push dword [ebp - 0x18]
push dword [ebp - 0x14]
push eax
movzx eax, word [ebp - 0x2c]
push eax
push dword [ebp - 0x30]
lea eax, [ebp - 0xe0]
push eax
push dword [esi]
push ecx
call fcn.00402240
mov ecx, dword [esi]
mov edx, eax
mov eax, dword [edi + 0x14]
add esp, 0x3c
mov dword [ebp - 0xa0], 0xe30420e8
mov dword [ebp - 0x9c], 0xcb17f894
mov dword [ebp - 0x98], 0x87379fcb
mov dword [ebp - 0x94], 0x503f2b41
movaps xmm1, xmmword [ebp - 0xa0]
mov dword [ebp - 0x90], 0x43027fc2
mov dword [ebp - 0x8c], 0xb30fdc4a
mov dword [ebp - 0x88], 0xb338d5d5
mov dword [ebp - 0x84], 0x5d1b73b7
movaps xmm2, xmmword [ebp - 0x90]
mov dword [ebp - 0x80], 0xf032a664
mov dword [ebp - 0x7c], 0xc7055dd0
mov dword [ebp - 0x78], 0xe768b207
mov dword [ebp - 0x74], 0xd17dbb5d
movaps xmm3, xmmword [ebp - 0x80]
movaps xmmword [ebp - 0xe0], xmm1
movaps xmmword [ebp - 0xd0], xmm2
movaps xmmword [ebp - 0xc0], xmm3
mov dword [ebp - 0x70], 0xbb3c10cd
mov dword [ebp - 0x6c], 0x9323c8b1
mov dword [ebp - 0x68], 0xdf03afee
mov dword [ebp - 0x64], 0x80d1b64
xorps xmm1, xmmword [ebp - 0x70]
mov dword [ebp - 0x60], 0x1b304fe7
mov dword [ebp - 0x5c], 0xeb3dec6f
mov dword [ebp - 0x58], 0xeb0ae5f0
mov dword [ebp - 0x54], 0x5294392
xorps xmm2, xmmword [ebp - 0x60]
mov dword [ebp - 0x50], 0xa8009641
mov dword [ebp - 0x4c], 0x9f376df5
mov dword [ebp - 0x48], 0xbf5a8222
mov dword [ebp - 0x44], 0xd17de378
xorps xmm3, xmmword [ebp - 0x50]
movaps xmmword [ebp - 0xe0], xmm1
movaps xmmword [ebp - 0xd0], xmm2
movaps xmmword [ebp - 0xc0], xmm3
mov dword [ebp - 4], ecx
cmp edx, ecx
ja 0x40d9aa
cmp eax, 0x10
jb 0x40d999
mov edi, dword [edi]
mov dword [esi], edx
mov al, 1
mov byte [edi + edx], 0
pop edi
pop esi
mov esp, ebp
pop ebp
mov esp, ebx
pop ebx
ret
sub eax, dword [ebp - 4]
mov ecx, edx
sub ecx, dword [ebp - 4]
mov dword [ebp - 0x14], ecx
cmp ecx, eax
ja 0x40d9e6
cmp dword [edi + 0x14], 0x10
mov dword [esi], edx
jb 0x40d9c3
mov edi, dword [edi]
mov esi, dword [ebp - 4]
push ecx
add esi, edi
push 0
push esi
call fcn.00522010
mov eax, dword [ebp - 0x14]
add esp, 0xc
mov byte [eax + esi], 0
mov al, 1
pop edi
pop esi
mov esp, ebp
pop ebp
mov esp, ebx
pop ebx
ret
push 0
push ecx
push dword [ebp - 0x14]
push ecx
mov ecx, edi
call fcn.00429a10
pop edi
mov al, 1
pop esi
mov esp, ebp
pop ebp
mov esp, ebx
pop ebx
ret