Function at 0x419760
Capabilities:
Parse pe header

Disassembly:
push ebp
mov ebp, esp
mov ecx, 0xf
push 0
push 0
dec ecx
jne 0x419768
push ecx
push ebx
push esi
push edi
mov eax, 0x419698
call fcn.00406848
mov edi, 0x41b9ac
xor eax, eax
push ebp
push 0x41a5b7
push dword fs:[eax]
mov dword fs:[eax], esp
xor edx, edx
push ebp
push 0x41a56c
push dword fs:[edx]
mov dword fs:[edx], esp
mov eax, 0xe1dda0
mov edx, dword [0x41867c]
call fcn.004059bc
mov eax, 0xe1dda4
mov edx, dword [0x41869c]
call fcn.004059bc
mov eax, dword [0x41bb50]
mov byte [eax], 0
lea edx, [ebp - 0x14]
xor eax, eax
call fcn.00402e0c
mov edx, dword [ebp - 0x14]
mov eax, 0xe1daec
call fcn.0040312c
xor eax, eax
push ebp
push 0x41a3bc
push dword fs:[eax]
mov dword fs:[eax], esp
mov edx, 1
mov eax, 0xe1daec
call fcn.0040356c
call fcn.00402ae8
xor eax, eax
push ebp
push 0x41a3ab
push dword fs:[eax]
mov dword fs:[eax], esp
xor ebx, ebx
push 0
mov edx, 0xe1dd84
mov ecx, 2
mov eax, 0xe1daec
call fcn.00403284
call fcn.00402ae8
cmp word [0xe1dd84], 0x5a4d
jne 0x41987a
mov edx, 0x3c
mov eax, 0xe1daec
call fcn.00403594
call fcn.00402ae8
push 0
mov edx, 0xe1dd84
mov ecx, 2
mov eax, 0xe1daec
call fcn.00403284
call fcn.00402ae8
movzx edx, word [0xe1dd84]
mov eax, 0xe1daec
call fcn.00403594
call fcn.00402ae8
push 0
mov edx, 0xe1dd90
mov ecx, 4
mov eax, 0xe1daec
call fcn.00403284
call fcn.00402ae8
cmp dword [0xe1dd90], 0x4550
jne 0x419a1e
mov eax, 0xe1daec
call fcn.004033a8
call fcn.00402ae8
mov edx, eax
add edx, 2
mov eax, 0xe1daec
call fcn.00403594
call fcn.00402ae8
push 0
mov edx, 0xe1dd84
mov ecx, 2
mov eax, 0xe1daec
call fcn.00403284
call fcn.00402ae8
movzx eax, word [0xe1dd84]
mov dword [0xe1dd94], eax
mov eax, 0xe1daec
call fcn.004033a8
call fcn.00402ae8
mov edx, eax
add edx, 0xc
mov eax, 0xe1daec
call fcn.00403594
call fcn.00402ae8
push 0
mov edx, 0xe1dd84
mov ecx, 2
mov eax, 0xe1daec
call fcn.00403284
call fcn.00402ae8
mov eax, 0xe1daec
call fcn.004033a8
call fcn.00402ae8
mov edx, eax
add edx, 2
movzx eax, word [0xe1dd84]
add edx, eax
mov eax, 0xe1daec
call fcn.00403594
call fcn.00402ae8
mov esi, dword [0xe1dd94]
test esi, esi
jle 0x419a1e
mov dword [0xe1dd90], 1
mov eax, 0xe1daec
call fcn.004033a8
call fcn.00402ae8
mov edx, eax
add edx, 0x10
mov eax, 0xe1daec
call fcn.00403594
call fcn.00402ae8
push 0
mov edx, 0xe1dd88
mov ecx, 4
mov eax, 0xe1daec
call fcn.00403284
call fcn.00402ae8
push 0
mov edx, 0xe1dd8c
mov ecx, 4
mov eax, 0xe1daec
call fcn.00403284
call fcn.00402ae8
cmp dword [0xe1dd88], 0
jle 0x4199ee
mov eax, dword [0xe1dd88]
add eax, dword [0xe1dd8c]
cmp ebx, eax
jge 0x4199ee
mov ebx, dword [0xe1dd88]
add ebx, dword [0xe1dd8c]
mov eax, 0xe1daec
call fcn.004033a8
call fcn.00402ae8
mov edx, eax
add edx, 0x10
mov eax, 0xe1daec
call fcn.00403594
call fcn.00402ae8
inc dword [0xe1dd90]
dec esi
jne 0x419971
lea eax, [ebx + 0x196]
mov dword [0xe1dd90], eax
test ebx, ebx
je 0x419a44
mov eax, 0xe1daec
call fcn.004033f8
call fcn.00402ae8
cmp eax, dword [0xe1dd90]
jg 0x419a5b
lea edx, [ebp - 0x18]
xor eax, eax
call fcn.00402e0c
mov eax, dword [ebp - 0x18]
mov edx, 0x26
call fcn.00418cb4
mov edx, ebx
mov eax, 0xe1daec
call fcn.00403594
call fcn.00402ae8
push 0
mov edx, dword [0x41bb78]
mov ecx, 0x196
mov eax, 0xe1daec
call fcn.00403284
call fcn.00402ae8
call fcn.004183f8
call fcn.004194a0
call fcn.00419478
jmp 0x419bee
mov edx, dword [0xe1dd90]
mov eax, 0xe1daec
call fcn.00403594
call fcn.00402ae8
push 0
mov edx, dword [0x41baac]
mov ecx, 0x12
mov eax, 0xe1daec
call fcn.00403284
call fcn.00402ae8
mov esi, dword [0x41baac]
mov esi, dword [esi + 2]
test esi, esi
jne 0x419aff
mov eax, dword [0x41baac]
cmp dword [eax + 6], 0
jne 0x419aff
mov eax, dword [0x41baac]
cmp dword [eax + 0xa], 0
jne 0x419aff
mov eax, dword [0x41baac]
cmp dword [eax + 0xe], 0
je 0x419c12
add dword [0xe1dd90], 0x12
mov eax, dword [0x41baac]
add dword [0xe1dd90], esi
mov eax, dword [0x41bb78]
cmp byte [eax + 0x193], 0
je 0x419bc6
xor eax, eax
mov dword [0xe1dd94], eax
jmp 0x419b90
mov edx, dword [0xe1dd90]
mov eax, 0xe1daec
call fcn.00403594
call fcn.00402ae8
push 0
mov edx, 0xe1dd98
mov ecx, 4
mov eax, 0xe1daec
call fcn.00403284
call fcn.00402ae8
mov eax, dword [0xe1dd98]
add dword [0xe1dd94], eax
push 0
mov edx, 0xe1dd98
mov ecx, 4
mov eax, 0xe1daec
call fcn.00403284
call fcn.00402ae8
mov eax, dword [0xe1dd98]
add eax, 8
add dword [0xe1dd90], eax
cmp dword [0xe1dd90], 0
jl 0x419bd4
mov eax, 0xe1daec
call fcn.004033f8
call fcn.00402ae8
cmp eax, dword [0xe1dd90]
jle 0x419bd4
mov eax, dword [0x41baac]
mov eax, dword [eax + 6]
cmp eax, dword [0xe1dd94]
jg 0x419b2c
jmp 0x419bd4
mov eax, dword [0x41baac]
mov eax, dword [eax + 6]
add dword [0xe1dd90], eax
add dword [0xe1dd90], 4
mov eax, dword [0x41baac]
mov eax, dword [eax + 6]
cdq
add dword [edi], eax
adc dword [edi + 4], edx
call fcn.00419478
cmp dword [0xe1dd90], 0
jl 0x419c12
mov eax, 0xe1daec
call fcn.004033f8
call fcn.00402ae8
cmp eax, dword [0xe1dd90]
jg 0x419a9c
cmp dword [edi + 4], 0
jne 0x419c1b
cmp dword [edi], 0
je 0x419c58
cmp dword [edi + 4], 0
jne 0x419c2a
cmp dword [edi], 0
jbe 0x419c6f
jmp 0x419c2c
jle 0x419c6f
mov eax, dword [0x41baac]
cmp dword [eax + 2], 0
jne 0x419c58
mov eax, dword [0x41baac]
cmp dword [eax + 6], 0
jne 0x419c58
mov eax, dword [0x41baac]
cmp dword [eax + 0xa], 0
jne 0x419c58
mov eax, dword [0x41baac]
cmp dword [eax + 0xe], 0
je 0x419c6f
lea edx, [ebp - 0x1c]
xor eax, eax
call fcn.00402e0c
mov eax, dword [ebp - 0x1c]
mov edx, 0xd
call fcn.00418cb4
mov eax, dword [0x41bb78]
mov al, byte [eax + 1]
dec al
je 0x419c8c
dec al
je 0x419ca8
dec al
je 0x419cc4
dec al
je 0x419cdb
jmp 0x419d0e
lea edx, [ebp - 0x20]
mov eax, 0x10
call fcn.004187b8
mov edx, dword [ebp - 0x20]
mov eax, 0x41b9a0
call fcn.00404a80
jmp 0x419d25
lea edx, [ebp - 0x24]
mov eax, 5
call fcn.004187b8
mov edx, dword [ebp - 0x24]
mov eax, 0x41b9a0
call fcn.00404a80
jmp 0x419d25
lea eax, [ebp - 0x28]
call fcn.00418860
mov edx, dword [ebp - 0x28]
mov eax, 0x41b9a0
call fcn.00404a80
jmp 0x419d25
lea eax, [ebp - 0x30]
mov edx, dword [0x41bb78]
add edx, 0x82
mov ecx, 0x105
call fcn.00404c9c
mov eax, dword [ebp - 0x30]
lea edx, [ebp - 0x2c]
call fcn.004188ac
mov edx, dword [ebp - 0x2c]
mov eax, 0x41b9a0
call fcn.00404a80
jmp 0x419d25
lea edx, [ebp - 0x34]
mov al, 1
call fcn.004186c4
mov edx, dword [ebp - 0x34]
mov eax, 0x41b9a0
call fcn.00404a80
lea edx, [ebp - 0x38]
mov eax, dword [0x41b9a0]
call fcn.00408654
mov edx, dword [ebp - 0x38]
mov eax, 0x41b9a0
call fcn.00404a80
lea edx, [ebp - 0x3c]
mov eax, dword [0x41b9a0]
call fcn.00408588
mov eax, dword [ebp - 0x3c]
mov al, byte [eax]
call fcn.00402e70
sub al, 0x41
inc eax
call fcn.0040874c
mov dword [0xe1dda8], eax
mov dword [0xe1ddac], edx
mov eax, dword [edi]
mov edx, dword [edi + 4]
cmp edx, dword [0xe1ddac]
jne 0x419d81
cmp eax, dword [0xe1dda8]
jbe 0x419df9
jmp 0x419d83
jle 0x419df9
lea eax, [ebp - 0x40]
push eax
lea edx, [ebp - 0x5c]
mov eax, dword [0x41b9a0]
call fcn.00408588
mov eax, dword [ebp - 0x5c]
mov al, byte [eax]
call fcn.00402e70
mov byte [ebp - 0x58], al
mov byte [ebp - 0x54], 2
push dword [0xe1ddac]
push dword [0xe1dda8]
lea eax, [ebp - 0x60]
call fcn.00418ea8
mov eax, dword [ebp - 0x60]
mov dword [ebp - 0x50], eax
mov byte [ebp - 0x4c], 0xb
push dword [edi + 4]
push dword [edi]
lea eax, [ebp - 0x64]
call fcn.00418ea8
mov eax, dword [ebp - 0x64]
mov dword [ebp - 0x48], eax
mov byte [ebp - 0x44], 0xb
lea edx, [ebp - 0x58]
mov ecx, 2
mov eax, 0x41a5d0
call fcn.00408d68
mov eax, dword [ebp - 0x40]
mov edx, 0x70
call fcn.00418cb4
mov eax, dword [0x41b9a0]
call fcn.00418958
lea edx, [ebx + 0x196]
mov eax, 0xe1daec
call fcn.00403594
call fcn.00402ae8
jmp 0x41a366
push 0
mov edx, dword [0x41baac]
mov ecx, 0x12
mov eax, 0xe1daec
call fcn.00403284
call fcn.00402ae8
mov eax, dword [0x41baac]
cmp dword [eax + 2], 0
jne 0x419e69
mov eax, dword [0x41baac]
cmp dword [eax + 6], 0
jne 0x419e69
mov eax, dword [0x41baac]
cmp dword [eax + 0xa], 0
jne 0x419e69
mov eax, dword [0x41baac]
cmp dword [eax + 0xe], 0
je 0x41a38e
mov eax, dword [0x41baac]
cmp byte [eax + 1], 0
je 0x419e8d
lea edx, [ebp - 0x68]
xor eax, eax
call fcn.004186c4
mov edx, dword [ebp - 0x68]
mov eax, 0xe1dd9c
call fcn.00404a80
jmp 0x419e9d
mov eax, 0xe1dd9c
mov edx, dword [0x41b9a0]
call fcn.00404a80
mov eax, dword [0xe1dd9c]
call fcn.00404cc8
mov dword [0xe1dd94], eax
mov edx, dword [0x41baac]
mov edx, dword [edx + 2]
add edx, dword [0xe1dd94]
mov eax, 0xe1dd9c
call fcn.00405054
push 0
mov eax, 0xe1dd9c
call fcn.00404f20
mov edx, dword [0xe1dd94]
lea edx, [eax + edx]
mov ecx, dword [0x41baac]
mov ecx, dword [ecx + 2]
mov eax, 0xe1daec
call fcn.00403284
call fcn.00402ae8
mov eax, 0xe1dd9c
call fcn.00404f20
mov edx, dword [0xe1dd94]
add eax, edx
mov edx, dword [0x41baac]
mov edx, dword [edx + 2]
call fcn.00417d2c
mov dword [0xe1dd8c], eax
mov eax, dword [0x41baac]
test byte [eax + 0xe], 0x10
jne 0x41a30a
mov eax, dword [0x41baac]
cmp byte [eax], 0
je 0x419f40
mov eax, 0x41b9a4
mov edx, dword [0xe1dd9c]
call fcn.00404a80
mov ebx, dword [0x41baac]
mov bl, byte [ebx + 1]
test bl, bl
je 0x419f5d
mov eax, 0x41b9a8
mov edx, dword [0xe1dd9c]
call fcn.00404a80
mov eax, dword [0x41baac]
test bl, bl
jne 0x419fa8
mov eax, dword [0xe1dda0]
call fcn.004057d4
inc eax
push eax
mov eax, 0xe1dda0
mov ecx, 1
mov edx, dword [0x41867c]
call fcn.004059b0
add esp, 4
mov eax, dword [0xe1dda0]
call fcn.004057dc
mov edx, dword [0xe1dda0]
lea eax, [edx + eax*4]
mov edx, dword [0xe1dd9c]
call fcn.00404a80
mov eax, dword [0x41bb50]
mov byte [eax], 1
xor edx, edx
mov eax, dword [0xe1dd9c]
call fcn.004083c8
mov edx, dword [0xe1dd9c]
mov eax, 0xe1dc38
call fcn.0040312c
xor eax, eax
push ebp
push 0x419ff8
push dword fs:[eax]
mov dword fs:[eax], esp
mov edx, 1
mov eax, 0xe1dc38
call fcn.00403588
call fcn.00402ae8
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
jmp 0x41a013
xor eax, eax
push ebp
push 0x41a303
push dword fs:[eax]
mov dword fs:[eax], esp
xor eax, eax
mov dword [0xe1dd90], eax
jmp 0x41a27f
mov eax, dword [0x41bb78]
cmp byte [eax + 0x193], 0
je 0x41a1a9
push 0
mov edx, 0xe1dd94
mov ecx, 4
mov eax, 0xe1daec
call fcn.00403284
call fcn.00402ae8
push 0
mov edx, 0xe1dd98
mov ecx, 4
mov eax, 0xe1daec
call fcn.00403284
call fcn.00402ae8
cmp dword [0xe1dd98], 0xa00000
jle 0x41a098
lea edx, [ebp - 0x6c]
xor eax, eax
call fcn.00402e0c
mov eax, dword [ebp - 0x6c]
mov edx, 8
call fcn.00418cb4
push 0
mov edx, dword [0x41baf8]
mov ecx, dword [0xe1dd98]
mov eax, 0xe1daec
call fcn.00403284
call fcn.00402ae8
xor eax, eax
mov dword [0xe1ddf8], eax
xor eax, eax
push ebp
push 0x41a0f4
push dword fs:[eax]
mov dword fs:[eax], esp
push 0xe1ddf8
push 0xe1ddfc
mov eax, dword [0x41baf8]
mov ecx, dword [0xe1dd94]
mov edx, dword [0xe1dd98]
call fcn.00413df4
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
jmp 0x41a10d
xor eax, eax
push ebp
push 0x41a1a2
push dword fs:[eax]
mov dword fs:[eax], esp
xor eax, eax
push ebp
push 0x41a150
push dword fs:[eax]
mov dword fs:[eax], esp
push 0
mov edx, dword [0xe1ddf8]
mov ecx, dword [0xe1ddfc]
mov eax, 0xe1dc38
call fcn.004032a4
call fcn.00402ae8
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
jmp 0x41a16b
mov edx, dword [0xe1ddfc]
mov eax, dword [0xe1ddf8]
call fcn.00417d2c
add dword [0xe1dd8c], eax
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x41a258
cmp dword [0xe1ddf8], 0
je 0x41a1a1
mov eax, dword [0xe1ddf8]
call fcn.00402a14
ret
mov eax, dword [0x41baac]
mov esi, edi
sub esi, dword [0xe1dd90]
cmp esi, 0xa00000
jle 0x41a1ca
mov dword [0xe1dd94], 0xa00000
jmp 0x41a1d5
mov eax, dword [0x41baac]
mov dword [0xe1dd94], esi
push 0
mov edx, dword [0x41baf8]
mov ecx, dword [0xe1dd94]
mov eax, 0xe1daec
call fcn.00403284
call fcn.00402ae8
xor eax, eax
push ebp
push 0x41a227
push dword fs:[eax]
mov dword fs:[eax], esp
push 0
mov edx, dword [0x41baf8]
mov ecx, dword [0xe1dd94]
mov eax, 0xe1dc38
call fcn.004032a4
call fcn.00402ae8
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
jmp 0x41a242
mov eax, dword [0x41baf8]
mov edx, dword [0xe1dd94]
call fcn.00417d2c
add dword [0xe1dd8c], eax
mov eax, dword [0xe1dd94]
cdq
add dword [0x41b9b4], eax
adc dword [0x41b9b8], edx
mov eax, dword [0xe1dd94]
add dword [0xe1dd90], eax
call fcn.004195e4
call fcn.00419478
mov edi, dword [0x41baac]
mov edi, dword [edi + 6]
cmp edi, dword [0xe1dd90]
jg 0x41a02d
push 0
mov edx, 0xe1dd88
mov ecx, 4
mov eax, 0xe1daec
call fcn.00403284
call fcn.00402ae8
mov eax, dword [0xe1dd88]
cmp eax, dword [0xe1dd8c]
je 0x41a2d3
lea edx, [ebp - 0x70]
xor eax, eax
call fcn.00402e0c
mov eax, dword [ebp - 0x70]
mov edx, 0x17
call fcn.00418cb4
mov edx, dword [0x41baac]
mov edx, dword [edx + 0xa]
mov eax, dword [0xe1dc38]
call fcn.00408370
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x41a353
mov eax, 0xe1dc38
call fcn.004032c4
call fcn.00402ae8
ret
mov eax, dword [0xe1dd9c]
call fcn.00418958
push 0
mov edx, 0xe1dd88
mov ecx, 4
mov eax, 0xe1daec
call fcn.00403284
call fcn.00402ae8
mov eax, dword [0xe1dd88]
cmp eax, dword [0xe1dd8c]
je 0x41a353
lea edx, [ebp - 0x74]
xor eax, eax
call fcn.00402e0c
mov eax, dword [ebp - 0x74]
mov edx, 0x17
call fcn.00418cb4
mov edx, dword [0x41baac]
mov edx, dword [edx + 0xe]
mov eax, dword [0xe1dd9c]
call fcn.004083c8
mov eax, 0xe1daec
call fcn.004033a8
call fcn.00402ae8
mov ebx, eax
mov eax, 0xe1daec
call fcn.004033f8
call fcn.00402ae8
cmp ebx, eax
jl 0x419e1d
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x41a3b2
mov eax, 0xe1daec
call fcn.004032c4
call fcn.00402ae8
ret