Function at 0x419a8c
Capabilities:
Parse pe header

Disassembly:
push ebp
mov ebp, esp
mov ecx, 0x12
push 0
push 0
dec ecx
jne 0x419a94
push ebx
push esi
push edi
mov eax, 0x4199c4
call fcn.004068b0
mov edi, 0x41ba4c
xor eax, eax
push ebp
push 0x41aa21
push dword fs:[eax]
mov dword fs:[eax], esp
xor edx, edx
push ebp
push 0x41a9d3
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 0x41a754
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 0x41a743
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 0x419ba5
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 0x419d49
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 0x419d49
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 0x419d19
mov eax, dword [0xe1dd88]
add eax, dword [0xe1dd8c]
cmp esi, eax
jge 0x419d19
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 0x419c9c
lea eax, [esi + 0x198]
mov dword [0xe1dd90], eax
test esi, esi
je 0x419d6f
mov eax, 0xe1daec
call fcn.00403460
call fcn.00402ae8
cmp eax, dword [0xe1dd90]
jg 0x419d86
lea edx, [ebp - 0x18]
xor eax, eax
call fcn.00402e74
mov eax, dword [ebp - 0x18]
mov edx, 0x26
call fcn.00418f94
mov edx, esi
mov eax, 0xe1daec
call fcn.004035fc
call fcn.00402ae8
push 0
mov edx, dword [0x41bc18]
mov ecx, 0x198
mov eax, 0xe1daec
call fcn.004032ec
call fcn.00402ae8
call fcn.0041858c
call fcn.004197c4
call fcn.0041979c
jmp 0x419f19
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 0x419e2a
mov eax, dword [0x41bb4c]
cmp dword [eax + 5], 0
jne 0x419e2a
mov eax, dword [0x41bb4c]
cmp dword [eax + 9], 0
jne 0x419e2a
mov eax, dword [0x41bb4c]
cmp dword [eax + 0xd], 0
je 0x419f3d
add dword [0xe1dd90], 0x11
mov eax, dword [0x41bb4c]
add dword [0xe1dd90], ebx
mov eax, dword [0x41bc18]
cmp byte [eax + 0x193], 0
je 0x419ef1
xor eax, eax
mov dword [0xe1dd94], eax
jmp 0x419ebb
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 0x419eff
mov eax, 0xe1daec
call fcn.00403460
call fcn.00402ae8
cmp eax, dword [0xe1dd90]
jle 0x419eff
mov eax, dword [0x41bb4c]
mov eax, dword [eax + 5]
cmp eax, dword [0xe1dd94]
jg 0x419e57
jmp 0x419eff
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.0041979c
cmp dword [0xe1dd90], 0
jl 0x419f3d
mov eax, 0xe1daec
call fcn.00403460
call fcn.00402ae8
cmp eax, dword [0xe1dd90]
jg 0x419dc7
cmp dword [edi + 4], 0
jne 0x419f46
cmp dword [edi], 0
je 0x419f83
cmp dword [edi + 4], 0
jne 0x419f55
cmp dword [edi], 0
jbe 0x419f9a
jmp 0x419f57
jle 0x419f9a
mov eax, dword [0x41bb4c]
cmp dword [eax + 1], 0
jne 0x419f83
mov eax, dword [0x41bb4c]
cmp dword [eax + 5], 0
jne 0x419f83
mov eax, dword [0x41bb4c]
cmp dword [eax + 9], 0
jne 0x419f83
mov eax, dword [0x41bb4c]
cmp dword [eax + 0xd], 0
je 0x419f9a
lea edx, [ebp - 0x1c]
xor eax, eax
call fcn.00402e74
mov eax, dword [ebp - 0x1c]
mov edx, 0xd
call fcn.00418f94
mov eax, dword [0x41bc18]
movzx eax, byte [eax + 1]
cmp eax, 5
ja case.0x419fac.0
jmp dword [eax*4 + 0x419fb3]
lea edx, [ebp - 0x20]
mov eax, 0x10
call fcn.00418a70
mov edx, dword [ebp - 0x20]
mov eax, 0x41ba38
call fcn.00404ae8
jmp 0x41a0be
lea edx, [ebp - 0x24]
mov eax, 5
call fcn.00418a70
mov edx, dword [ebp - 0x24]
mov eax, 0x41ba38
call fcn.00404ae8
jmp 0x41a0be
lea eax, [ebp - 0x28]
call fcn.00418b18
mov edx, dword [ebp - 0x28]
mov eax, 0x41ba38
call fcn.00404ae8
jmp 0x41a0be
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 0x41a0be
xor edx, edx
xor eax, eax
call fcn.00418f94
jmp 0x41a0be
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 0x41a0be
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 0x41a11a
cmp eax, dword [0xe1dda8]
jbe 0x41a192
jmp 0x41a11c
jle 0x41a192
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.004191cc
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.004191cc
mov eax, dword [ebp - 0x6c]
mov dword [ebp - 0x50], eax
mov byte [ebp - 0x4c], 0xb
lea edx, [ebp - 0x60]
mov ecx, 2
mov eax, 0x41aa38
call fcn.00408db4
mov eax, dword [ebp - 0x48]
mov edx, 0x70
call fcn.00418f94
mov eax, dword [0x41ba38]
call fcn.00418c10
lea edx, [esi + 0x198]
mov eax, 0xe1daec
call fcn.004035fc
call fcn.00402ae8
jmp 0x41a6fe
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 0x41a202
mov eax, dword [0x41bb4c]
cmp dword [eax + 5], 0
jne 0x41a202
mov eax, dword [0x41bb4c]
cmp dword [eax + 9], 0
jne 0x41a202
mov eax, dword [0x41bb4c]
cmp dword [eax + 0xd], 0
je 0x41a726
mov eax, dword [0x41bb4c]
cmp byte [eax], 2
jne 0x41a225
lea edx, [ebp - 0x70]
xor eax, eax
call fcn.0041897c
mov edx, dword [ebp - 0x70]
mov eax, 0xe1dd9c
call fcn.00404ae8
jmp 0x41a235
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 0x41a6a2
mov ebx, dword [0x41bb4c]
mov bl, byte [ebx]
mov eax, ebx
dec al
je 0x41a2d2
dec al
je 0x41a2e4
jmp 0x41a2f4
mov eax, 0x41ba3c
mov edx, dword [0xe1dd9c]
call fcn.00404ae8
jmp 0x41a2f4
mov eax, 0x41ba40
mov edx, dword [0xe1dd9c]
call fcn.00404ae8
mov eax, dword [0x41bb4c]
sub bl, 2
je 0x41a340
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 0x41a390
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 0x41a3ab
xor eax, eax
push ebp
push 0x41a69b
push dword fs:[eax]
mov dword fs:[eax], esp
xor eax, eax
mov dword [0xe1dd90], eax
jmp 0x41a617
mov eax, dword [0x41bc18]
cmp byte [eax + 0x193], 0
je 0x41a541
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 0x41a430
lea edx, [ebp - 0x74]
xor eax, eax
call fcn.00402e74
mov eax, dword [ebp - 0x74]
mov edx, 8
call fcn.00418f94
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 0x41a48c
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 0x41a4a5
xor eax, eax
push ebp
push 0x41a53a
push dword fs:[eax]
mov dword fs:[eax], esp
xor eax, eax
push ebp
push 0x41a4e8
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 0x41a503
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 0x41a5f0
cmp dword [0xe1ddf4], 0
je 0x41a539
mov eax, dword [0xe1ddf4]
call fcn.00402a14
ret
mov eax, dword [0x41bb4c]
mov esi, edi
sub esi, dword [0xe1dd90]
cmp esi, 0xa00000
jle 0x41a562
mov dword [0xe1dd94], 0xa00000
jmp 0x41a56d
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 0x41a5bf
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 0x41a5da
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.00419908
call fcn.0041979c
mov edi, dword [0x41bb4c]
mov edi, dword [edi + 5]
cmp edi, dword [0xe1dd90]
jg 0x41a3c5
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 0x41a66b
lea edx, [ebp - 0x78]
xor eax, eax
call fcn.00402e74
mov eax, dword [ebp - 0x78]
mov edx, 0x17
call fcn.00418f94
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 0x41a6eb
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 0x41a6eb
lea edx, [ebp - 0x7c]
xor eax, eax
call fcn.00402e74
mov eax, dword [ebp - 0x7c]
mov edx, 0x17
call fcn.00418f94
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 0x41a1b6
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x41a74a
mov eax, 0xe1daec
call fcn.0040332c
call fcn.00402ae8
ret