Function at 0x419a6c
Capabilities:
Parse pe header

Disassembly:
push ebp
mov ebp, esp
mov ecx, 0x11
push 0
push 0
dec ecx
jne 0x419a74
push ebx
push esi
push edi
mov eax, 0x4199a4
call fcn.004068b0
mov edi, 0x41ba4c
xor eax, eax
push ebp
push 0x41a9b3
push dword fs:[eax]
mov dword fs:[eax], esp
xor edx, edx
push ebp
push 0x41a965
push dword fs:[edx]
mov dword fs:[edx], esp
mov eax, 0xe1dda0
mov edx, dword [0x418824]
call fcn.00405a24
mov eax, 0xe1dda4
mov edx, dword [0x418844]
call fcn.00405a24
mov eax, dword [0x41bbf0]
mov byte [eax], 0
lea edx, [ebp - 0x14]
xor eax, eax
call fcn.00402e74
mov edx, dword [ebp - 0x14]
mov eax, 0xe1daec
call fcn.00403194
xor eax, eax
push ebp
push 0x41a734
push dword fs:[eax]
mov dword fs:[eax], esp
mov edx, 1
mov eax, 0xe1daec
call fcn.004035d4
call fcn.00402ae8
xor eax, eax
push ebp
push 0x41a723
push dword fs:[eax]
mov dword fs:[eax], esp
xor esi, esi
push 0
mov edx, 0xe1dd84
mov ecx, 2
mov eax, 0xe1daec
call fcn.004032ec
call fcn.00402ae8
cmp word [0xe1dd84], 0x5a4d
jne 0x419b85
mov edx, 0x3c
mov eax, 0xe1daec
call fcn.004035fc
call fcn.00402ae8
push 0
mov edx, 0xe1dd84
mov ecx, 2
mov eax, 0xe1daec
call fcn.004032ec
call fcn.00402ae8
movzx edx, word [0xe1dd84]
mov eax, 0xe1daec
call fcn.004035fc
call fcn.00402ae8
push 0
mov edx, 0xe1dd90
mov ecx, 4
mov eax, 0xe1daec
call fcn.004032ec
call fcn.00402ae8
cmp dword [0xe1dd90], 0x4550
jne 0x419d29
mov eax, 0xe1daec
call fcn.00403410
call fcn.00402ae8
mov edx, eax
add edx, 2
mov eax, 0xe1daec
call fcn.004035fc
call fcn.00402ae8
push 0
mov edx, 0xe1dd84
mov ecx, 2
mov eax, 0xe1daec
call fcn.004032ec
call fcn.00402ae8
movzx eax, word [0xe1dd84]
mov dword [0xe1dd94], eax
mov eax, 0xe1daec
call fcn.00403410
call fcn.00402ae8
mov edx, eax
add edx, 0xc
mov eax, 0xe1daec
call fcn.004035fc
call fcn.00402ae8
push 0
mov edx, 0xe1dd84
mov ecx, 2
mov eax, 0xe1daec
call fcn.004032ec
call fcn.00402ae8
mov eax, 0xe1daec
call fcn.00403410
call fcn.00402ae8
mov edx, eax
add edx, 2
movzx eax, word [0xe1dd84]
add edx, eax
mov eax, 0xe1daec
call fcn.004035fc
call fcn.00402ae8
mov ebx, dword [0xe1dd94]
test ebx, ebx
jle 0x419d29
mov dword [0xe1dd90], 1
mov eax, 0xe1daec
call fcn.00403410
call fcn.00402ae8
mov edx, eax
add edx, 0x10
mov eax, 0xe1daec
call fcn.004035fc
call fcn.00402ae8
push 0
mov edx, 0xe1dd88
mov ecx, 4
mov eax, 0xe1daec
call fcn.004032ec
call fcn.00402ae8
push 0
mov edx, 0xe1dd8c
mov ecx, 4
mov eax, 0xe1daec
call fcn.004032ec
call fcn.00402ae8
cmp dword [0xe1dd88], 0
jle 0x419cf9
mov eax, dword [0xe1dd88]
add eax, dword [0xe1dd8c]
cmp esi, eax
jge 0x419cf9
mov esi, dword [0xe1dd88]
add esi, dword [0xe1dd8c]
mov eax, 0xe1daec
call fcn.00403410
call fcn.00402ae8
mov edx, eax
add edx, 0x10
mov eax, 0xe1daec
call fcn.004035fc
call fcn.00402ae8
inc dword [0xe1dd90]
dec ebx
jne 0x419c7c
lea eax, [esi + 0x197]
mov dword [0xe1dd90], eax
test esi, esi
je 0x419d4f
mov eax, 0xe1daec
call fcn.00403460
call fcn.00402ae8
cmp eax, dword [0xe1dd90]
jg 0x419d66
lea edx, [ebp - 0x18]
xor eax, eax
call fcn.00402e74
mov eax, dword [ebp - 0x18]
mov edx, 0x26
call fcn.00418f90
mov edx, esi
mov eax, 0xe1daec
call fcn.004035fc
call fcn.00402ae8
push 0
mov edx, dword [0x41bc18]
mov ecx, 0x197
mov eax, 0xe1daec
call fcn.004032ec
call fcn.00402ae8
call fcn.0041858c
call fcn.004197a4
call fcn.0041977c
jmp 0x419ef9
mov edx, dword [0xe1dd90]
mov eax, 0xe1daec
call fcn.004035fc
call fcn.00402ae8
push 0
mov edx, dword [0x41bb4c]
mov ecx, 0x11
mov eax, 0xe1daec
call fcn.004032ec
call fcn.00402ae8
mov ebx, dword [0x41bb4c]
mov ebx, dword [ebx + 1]
test ebx, ebx
jne 0x419e0a
mov eax, dword [0x41bb4c]
cmp dword [eax + 5], 0
jne 0x419e0a
mov eax, dword [0x41bb4c]
cmp dword [eax + 9], 0
jne 0x419e0a
mov eax, dword [0x41bb4c]
cmp dword [eax + 0xd], 0
je 0x419f1d
add dword [0xe1dd90], 0x11
mov eax, dword [0x41bb4c]
add dword [0xe1dd90], ebx
mov eax, dword [0x41bc18]
cmp byte [eax + 0x193], 0
je 0x419ed1
xor eax, eax
mov dword [0xe1dd94], eax
jmp 0x419e9b
mov edx, dword [0xe1dd90]
mov eax, 0xe1daec
call fcn.004035fc
call fcn.00402ae8
push 0
mov edx, 0xe1dd98
mov ecx, 4
mov eax, 0xe1daec
call fcn.004032ec
call fcn.00402ae8
mov eax, dword [0xe1dd98]
add dword [0xe1dd94], eax
push 0
mov edx, 0xe1dd98
mov ecx, 4
mov eax, 0xe1daec
call fcn.004032ec
call fcn.00402ae8
mov eax, dword [0xe1dd98]
add eax, 8
add dword [0xe1dd90], eax
cmp dword [0xe1dd90], 0
jl 0x419edf
mov eax, 0xe1daec
call fcn.00403460
call fcn.00402ae8
cmp eax, dword [0xe1dd90]
jle 0x419edf
mov eax, dword [0x41bb4c]
mov eax, dword [eax + 5]
cmp eax, dword [0xe1dd94]
jg 0x419e37
jmp 0x419edf
mov eax, dword [0x41bb4c]
mov eax, dword [eax + 5]
add dword [0xe1dd90], eax
add dword [0xe1dd90], 4
mov eax, dword [0x41bb4c]
mov eax, dword [eax + 5]
cdq
add dword [edi], eax
adc dword [edi + 4], edx
call fcn.0041977c
cmp dword [0xe1dd90], 0
jl 0x419f1d
mov eax, 0xe1daec
call fcn.00403460
call fcn.00402ae8
cmp eax, dword [0xe1dd90]
jg 0x419da7
cmp dword [edi + 4], 0
jne 0x419f26
cmp dword [edi], 0
je 0x419f63
cmp dword [edi + 4], 0
jne 0x419f35
cmp dword [edi], 0
jbe 0x419f7a
jmp 0x419f37
jle 0x419f7a
mov eax, dword [0x41bb4c]
cmp dword [eax + 1], 0
jne 0x419f63
mov eax, dword [0x41bb4c]
cmp dword [eax + 5], 0
jne 0x419f63
mov eax, dword [0x41bb4c]
cmp dword [eax + 9], 0
jne 0x419f63
mov eax, dword [0x41bb4c]
cmp dword [eax + 0xd], 0
je 0x419f7a
lea edx, [ebp - 0x1c]
xor eax, eax
call fcn.00402e74
mov eax, dword [ebp - 0x1c]
mov edx, 0xd
call fcn.00418f90
mov eax, dword [0x41bc18]
movzx eax, byte [eax + 1]
cmp eax, 5
ja case.0x419f8c.0
jmp dword [eax*4 + 0x419f93]
lea edx, [ebp - 0x20]
mov eax, 0x10
call fcn.00418a70
mov edx, dword [ebp - 0x20]
mov eax, 0x41ba38
call fcn.00404ae8
jmp 0x41a09e
lea edx, [ebp - 0x24]
mov eax, 5
call fcn.00418a70
mov edx, dword [ebp - 0x24]
mov eax, 0x41ba38
call fcn.00404ae8
jmp 0x41a09e
lea eax, [ebp - 0x28]
call fcn.00418b18
mov edx, dword [ebp - 0x28]
mov eax, 0x41ba38
call fcn.00404ae8
jmp 0x41a09e
mov eax, dword [0x41bb50]
movzx eax, byte [eax]
mov edx, dword [0x41bc58]
mov eax, dword [edx + eax*4]
call fcn.00404f30
mov edx, eax
lea eax, [ebp - 0x30]
call fcn.00404c8c
mov eax, dword [ebp - 0x30]
lea ecx, [ebp - 0x2c]
mov edx, 1
call fcn.0041886c
mov edx, dword [ebp - 0x2c]
mov eax, 0x41ba38
call fcn.00404ae8
cmp dword [0x41ba38], 0
jne 0x41a09e
xor edx, edx
xor eax, eax
call fcn.00418f90
jmp 0x41a09e
lea eax, [ebp - 0x38]
mov edx, dword [0x41bc18]
add edx, 0x82
mov ecx, 0x105
call fcn.00404d04
mov eax, dword [ebp - 0x38]
lea edx, [ebp - 0x34]
call fcn.00418b64
mov edx, dword [ebp - 0x34]
mov eax, 0x41ba38
call fcn.00404ae8
jmp 0x41a09e
lea edx, [ebp - 0x3c]
mov al, 1
call fcn.0041897c
mov edx, dword [ebp - 0x3c]
mov eax, 0x41ba38
call fcn.00404ae8
lea edx, [ebp - 0x40]
mov eax, dword [0x41ba38]
call fcn.004086a0
mov edx, dword [ebp - 0x40]
mov eax, 0x41ba38
call fcn.00404ae8
lea edx, [ebp - 0x44]
mov eax, dword [0x41ba38]
call fcn.004085d4
mov eax, dword [ebp - 0x44]
mov al, byte [eax]
call fcn.00402ed8
sub al, 0x41
inc eax
call fcn.00408798
mov dword [0xe1dda8], eax
mov dword [0xe1ddac], edx
mov eax, dword [edi]
mov edx, dword [edi + 4]
cmp edx, dword [0xe1ddac]
jne 0x41a0fa
cmp eax, dword [0xe1dda8]
jbe 0x41a172
jmp 0x41a0fc
jle 0x41a172
lea eax, [ebp - 0x48]
push eax
lea edx, [ebp - 0x64]
mov eax, dword [0x41ba38]
call fcn.004085d4
mov eax, dword [ebp - 0x64]
mov al, byte [eax]
call fcn.00402ed8
mov byte [ebp - 0x60], al
mov byte [ebp - 0x5c], 2
push dword [0xe1ddac]
push dword [0xe1dda8]
lea eax, [ebp - 0x68]
call fcn.004191ac
mov eax, dword [ebp - 0x68]
mov dword [ebp - 0x58], eax
mov byte [ebp - 0x54], 0xb
push dword [edi + 4]
push dword [edi]
lea eax, [ebp - 0x6c]
call fcn.004191ac
mov eax, dword [ebp - 0x6c]
mov dword [ebp - 0x50], eax
mov byte [ebp - 0x4c], 0xb
lea edx, [ebp - 0x60]
mov ecx, 2
mov eax, 0x41a9cc
call fcn.00408db4
mov eax, dword [ebp - 0x48]
mov edx, 0x70
call fcn.00418f90
mov eax, dword [0x41ba38]
call fcn.00418c10
lea edx, [esi + 0x197]
mov eax, 0xe1daec
call fcn.004035fc
call fcn.00402ae8
jmp 0x41a6de
push 0
mov edx, dword [0x41bb4c]
mov ecx, 0x11
mov eax, 0xe1daec
call fcn.004032ec
call fcn.00402ae8
mov eax, dword [0x41bb4c]
cmp dword [eax + 1], 0
jne 0x41a1e2
mov eax, dword [0x41bb4c]
cmp dword [eax + 5], 0
jne 0x41a1e2
mov eax, dword [0x41bb4c]
cmp dword [eax + 9], 0
jne 0x41a1e2
mov eax, dword [0x41bb4c]
cmp dword [eax + 0xd], 0
je 0x41a706
mov eax, dword [0x41bb4c]
cmp byte [eax], 2
jne 0x41a205
lea edx, [ebp - 0x70]
xor eax, eax
call fcn.0041897c
mov edx, dword [ebp - 0x70]
mov eax, 0xe1dd9c
call fcn.00404ae8
jmp 0x41a215
mov eax, 0xe1dd9c
mov edx, dword [0x41ba38]
call fcn.00404ae8
mov eax, dword [0xe1dd9c]
call fcn.00404d30
mov dword [0xe1dd94], eax
mov edx, dword [0x41bb4c]
mov edx, dword [edx + 1]
add edx, dword [0xe1dd94]
mov eax, 0xe1dd9c
call fcn.004050bc
push 0
mov eax, 0xe1dd9c
call fcn.00404f88
mov edx, dword [0xe1dd94]
lea edx, [eax + edx]
mov ecx, dword [0x41bb4c]
mov ecx, dword [ecx + 1]
mov eax, 0xe1daec
call fcn.004032ec
call fcn.00402ae8
mov eax, 0xe1dd9c
call fcn.00404f88
mov edx, dword [0xe1dd94]
add eax, edx
mov edx, dword [0x41bb4c]
mov edx, dword [edx + 1]
call fcn.00417dc8
mov dword [0xe1dd8c], eax
mov eax, dword [0x41bb4c]
test byte [eax + 0xd], 0x10
jne 0x41a682
mov ebx, dword [0x41bb4c]
mov bl, byte [ebx]
mov eax, ebx
dec al
je 0x41a2b2
dec al
je 0x41a2c4
jmp 0x41a2d4
mov eax, 0x41ba3c
mov edx, dword [0xe1dd9c]
call fcn.00404ae8
jmp 0x41a2d4
mov eax, 0x41ba40
mov edx, dword [0xe1dd9c]
call fcn.00404ae8
mov eax, dword [0x41bb4c]
sub bl, 2
je 0x41a320
mov eax, dword [0xe1dda0]
call fcn.0040583c
inc eax
push eax
mov eax, 0xe1dda0
mov ecx, 1
mov edx, dword [0x418824]
call fcn.00405a18
add esp, 4
mov eax, dword [0xe1dda0]
call fcn.00405844
mov edx, dword [0xe1dda0]
lea eax, [edx + eax*4]
mov edx, dword [0xe1dd9c]
call fcn.00404ae8
mov eax, dword [0x41bbf0]
mov byte [eax], 1
xor edx, edx
mov eax, dword [0xe1dd9c]
call fcn.00408414
mov edx, dword [0xe1dd9c]
mov eax, 0xe1dc38
call fcn.00403194
xor eax, eax
push ebp
push 0x41a370
push dword fs:[eax]
mov dword fs:[eax], esp
mov edx, 1
mov eax, 0xe1dc38
call fcn.004035f0
call fcn.00402ae8
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
jmp 0x41a38b
xor eax, eax
push ebp
push 0x41a67b
push dword fs:[eax]
mov dword fs:[eax], esp
xor eax, eax
mov dword [0xe1dd90], eax
jmp 0x41a5f7
mov eax, dword [0x41bc18]
cmp byte [eax + 0x193], 0
je 0x41a521
push 0
mov edx, 0xe1dd94
mov ecx, 4
mov eax, 0xe1daec
call fcn.004032ec
call fcn.00402ae8
push 0
mov edx, 0xe1dd98
mov ecx, 4
mov eax, 0xe1daec
call fcn.004032ec
call fcn.00402ae8
cmp dword [0xe1dd98], 0xa00000
jle 0x41a410
lea edx, [ebp - 0x74]
xor eax, eax
call fcn.00402e74
mov eax, dword [ebp - 0x74]
mov edx, 8
call fcn.00418f90
push 0
mov edx, dword [0x41bb98]
mov ecx, dword [0xe1dd98]
mov eax, 0xe1daec
call fcn.004032ec
call fcn.00402ae8
xor eax, eax
mov dword [0xe1ddf4], eax
xor eax, eax
push ebp
push 0x41a46c
push dword fs:[eax]
mov dword fs:[eax], esp
push 0xe1ddf4
push 0xe1ddf8
mov eax, dword [0x41bb98]
mov ecx, dword [0xe1dd94]
mov edx, dword [0xe1dd98]
call fcn.00413e90
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
jmp 0x41a485
xor eax, eax
push ebp
push 0x41a51a
push dword fs:[eax]
mov dword fs:[eax], esp
xor eax, eax
push ebp
push 0x41a4c8
push dword fs:[eax]
mov dword fs:[eax], esp
push 0
mov edx, dword [0xe1ddf4]
mov ecx, dword [0xe1ddf8]
mov eax, 0xe1dc38
call fcn.0040330c
call fcn.00402ae8
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
jmp 0x41a4e3
mov edx, dword [0xe1ddf8]
mov eax, dword [0xe1ddf4]
call fcn.00417dc8
add dword [0xe1dd8c], eax
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x41a5d0
cmp dword [0xe1ddf4], 0
je 0x41a519
mov eax, dword [0xe1ddf4]
call fcn.00402a14
ret
mov eax, dword [0x41bb4c]
mov esi, edi
sub esi, dword [0xe1dd90]
cmp esi, 0xa00000
jle 0x41a542
mov dword [0xe1dd94], 0xa00000
jmp 0x41a54d
mov eax, dword [0x41bb4c]
mov dword [0xe1dd94], esi
push 0
mov edx, dword [0x41bb98]
mov ecx, dword [0xe1dd94]
mov eax, 0xe1daec
call fcn.004032ec
call fcn.00402ae8
xor eax, eax
push ebp
push 0x41a59f
push dword fs:[eax]
mov dword fs:[eax], esp
push 0
mov edx, dword [0x41bb98]
mov ecx, dword [0xe1dd94]
mov eax, 0xe1dc38
call fcn.0040330c
call fcn.00402ae8
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
jmp 0x41a5ba
mov eax, dword [0x41bb98]
mov edx, dword [0xe1dd94]
call fcn.00417dc8
add dword [0xe1dd8c], eax
mov eax, dword [0xe1dd94]
cdq
add dword [0x41ba54], eax
adc dword [0x41ba58], edx
mov eax, dword [0xe1dd94]
add dword [0xe1dd90], eax
call fcn.004198e8
call fcn.0041977c
mov edi, dword [0x41bb4c]
mov edi, dword [edi + 5]
cmp edi, dword [0xe1dd90]
jg 0x41a3a5
push 0
mov edx, 0xe1dd88
mov ecx, 4
mov eax, 0xe1daec
call fcn.004032ec
call fcn.00402ae8
mov eax, dword [0xe1dd88]
cmp eax, dword [0xe1dd8c]
je 0x41a64b
lea edx, [ebp - 0x78]
xor eax, eax
call fcn.00402e74
mov eax, dword [ebp - 0x78]
mov edx, 0x17
call fcn.00418f90
mov edx, dword [0x41bb4c]
mov edx, dword [edx + 9]
mov eax, dword [0xe1dc38]
call fcn.004083bc
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x41a6cb
mov eax, 0xe1dc38
call fcn.0040332c
call fcn.00402ae8
ret
mov eax, dword [0xe1dd9c]
call fcn.00418c10
push 0
mov edx, 0xe1dd88
mov ecx, 4
mov eax, 0xe1daec
call fcn.004032ec
call fcn.00402ae8
mov eax, dword [0xe1dd88]
cmp eax, dword [0xe1dd8c]
je 0x41a6cb
lea edx, [ebp - 0x7c]
xor eax, eax
call fcn.00402e74
mov eax, dword [ebp - 0x7c]
mov edx, 0x17
call fcn.00418f90
mov edx, dword [0x41bb4c]
mov edx, dword [edx + 0xd]
mov eax, dword [0xe1dd9c]
call fcn.00408414
mov eax, 0xe1daec
call fcn.00403410
call fcn.00402ae8
mov ebx, eax
mov eax, 0xe1daec
call fcn.00403460
call fcn.00402ae8
cmp ebx, eax
jl 0x41a196
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x41a72a
mov eax, 0xe1daec
call fcn.0040332c
call fcn.00402ae8
ret