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 0x41a5e4
push dword fs:[eax]
mov dword fs:[eax], esp
xor edx, edx
push ebp
push 0x41a599
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 0x41a3e9
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 0x41a3d8
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 0x419cab
dec al
je 0x419cca
dec al
je 0x419ce1
jmp 0x419d14
lea edx, [ebp - 0x20]
mov eax, 0x10
call fcn.004187b8
mov edx, dword [ebp - 0x20]
mov eax, 0x41b9a0
call fcn.00404a80
jmp 0x419d58
lea edx, [ebp - 0x24]
mov eax, 5
call fcn.004187b8
mov edx, dword [ebp - 0x24]
mov eax, 0x41b9a0
call fcn.00404a80
jmp 0x419d58
lea eax, [ebp - 0x28]
call fcn.00418860
mov edx, dword [ebp - 0x28]
mov eax, 0x41b9a0
call fcn.00404a80
jmp 0x419d58
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 0x419d58
lea edx, [ebp - 0x34]
mov al, 1
call fcn.004186c4
mov edx, dword [ebp - 0x34]
mov eax, 0x41b9a0
call fcn.00404a80
jmp 0x419d58
mov al, byte [0x41a5f4]
push eax
lea eax, [ebp - 0x38]
push eax
mov ecx, 0x41a600
mov edx, 0x41a60c
mov eax, dword [0x41b9a0]
call fcn.0040c9bc
mov edx, dword [ebp - 0x38]
mov eax, 0x41b9a0
call fcn.00404a80
mov edx, dword [0x41b9a0]
mov eax, 0x41a60c
call fcn.0040500c
test eax, eax
jg 0x419d2d
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 0x419dae
cmp eax, dword [0xe1dda8]
jbe 0x419e26
jmp 0x419db0
jle 0x419e26
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, 0x41a618
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 0x41a393
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 0x419e96
mov eax, dword [0x41baac]
cmp dword [eax + 6], 0
jne 0x419e96
mov eax, dword [0x41baac]
cmp dword [eax + 0xa], 0
jne 0x419e96
mov eax, dword [0x41baac]
cmp dword [eax + 0xe], 0
je 0x41a3bb
mov eax, dword [0x41baac]
cmp byte [eax + 1], 0
je 0x419eba
lea edx, [ebp - 0x68]
xor eax, eax
call fcn.004186c4
mov edx, dword [ebp - 0x68]
mov eax, 0xe1dd9c
call fcn.00404a80
jmp 0x419eca
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 0x41a337
mov eax, dword [0x41baac]
cmp byte [eax], 0
je 0x419f6d
mov eax, 0x41b9a4
mov edx, dword [0xe1dd9c]
call fcn.00404a80
mov ebx, dword [0x41baac]
mov bl, byte [ebx + 1]
test bl, bl
je 0x419f8a
mov eax, 0x41b9a8
mov edx, dword [0xe1dd9c]
call fcn.00404a80
mov eax, dword [0x41baac]
test bl, bl
jne 0x419fd5
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 0x41a025
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 0x41a040
xor eax, eax
push ebp
push 0x41a330
push dword fs:[eax]
mov dword fs:[eax], esp
xor eax, eax
mov dword [0xe1dd90], eax
jmp 0x41a2ac
mov eax, dword [0x41bb78]
cmp byte [eax + 0x193], 0
je 0x41a1d6
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 0x41a0c5
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 0x41a121
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 0x41a13a
xor eax, eax
push ebp
push 0x41a1cf
push dword fs:[eax]
mov dword fs:[eax], esp
xor eax, eax
push ebp
push 0x41a17d
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 0x41a198
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 0x41a285
cmp dword [0xe1ddf8], 0
je 0x41a1ce
mov eax, dword [0xe1ddf8]
call fcn.00402a14
ret
mov eax, dword [0x41baac]
mov esi, edi
sub esi, dword [0xe1dd90]
cmp esi, 0xa00000
jle 0x41a1f7
mov dword [0xe1dd94], 0xa00000
jmp 0x41a202
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 0x41a254
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 0x41a26f
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 0x41a05a
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 0x41a300
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 0x41a380
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 0x41a380
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 0x419e4a
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x41a3df
mov eax, 0xe1daec
call fcn.004032c4
call fcn.00402ae8
ret