Function at 0x419acc
Capabilities:
Parse pe header

Disassembly:
push ebp
mov ebp, esp
mov ecx, 0x12
push 0
push 0
dec ecx
jne 0x419ad4
push ecx
push ebx
push esi
push edi
mov eax, 0x419a04
call fcn.004068b0
xor eax, eax
push ebp
push 0x41aae8
push dword fs:[eax]
mov dword fs:[eax], esp
xor edx, edx
push ebp
push 0x41aa9a
push dword fs:[edx]
mov dword fs:[edx], esp
mov eax, 0xe1dda4
mov edx, dword [0x41884c]
call fcn.00405a24
mov eax, 0xe1dda8
mov edx, dword [0x41886c]
call fcn.00405a24
mov eax, dword [0x41bbf4]
mov byte [eax], 0
lea edx, [ebp - 0x14]
xor eax, eax
call fcn.00402e74
mov edx, dword [ebp - 0x14]
mov eax, 0xe1daf0
call fcn.00403194
xor eax, eax
push ebp
push 0x41a815
push dword fs:[eax]
mov dword fs:[eax], esp
mov edx, 1
mov eax, 0xe1daf0
call fcn.004035d4
call fcn.00402ae8
xor eax, eax
push ebp
push 0x41a804
push dword fs:[eax]
mov dword fs:[eax], esp
xor esi, esi
push 0
mov edx, 0xe1dd88
mov ecx, 2
mov eax, 0xe1daf0
call fcn.004032ec
call fcn.00402ae8
cmp word [0xe1dd88], 0x5a4d
jne 0x419be1
mov edx, 0x3c
mov eax, 0xe1daf0
call fcn.004035fc
call fcn.00402ae8
push 0
mov edx, 0xe1dd88
mov ecx, 2
mov eax, 0xe1daf0
call fcn.004032ec
call fcn.00402ae8
movzx edx, word [0xe1dd88]
mov eax, 0xe1daf0
call fcn.004035fc
call fcn.00402ae8
push 0
mov edx, 0xe1dd94
mov ecx, 4
mov eax, 0xe1daf0
call fcn.004032ec
call fcn.00402ae8
cmp dword [0xe1dd94], 0x4550
jne 0x419d85
mov eax, 0xe1daf0
call fcn.00403410
call fcn.00402ae8
mov edx, eax
add edx, 2
mov eax, 0xe1daf0
call fcn.004035fc
call fcn.00402ae8
push 0
mov edx, 0xe1dd88
mov ecx, 2
mov eax, 0xe1daf0
call fcn.004032ec
call fcn.00402ae8
movzx eax, word [0xe1dd88]
mov dword [0xe1dd98], eax
mov eax, 0xe1daf0
call fcn.00403410
call fcn.00402ae8
mov edx, eax
add edx, 0xc
mov eax, 0xe1daf0
call fcn.004035fc
call fcn.00402ae8
push 0
mov edx, 0xe1dd88
mov ecx, 2
mov eax, 0xe1daf0
call fcn.004032ec
call fcn.00402ae8
mov eax, 0xe1daf0
call fcn.00403410
call fcn.00402ae8
mov edx, eax
add edx, 2
movzx eax, word [0xe1dd88]
add edx, eax
mov eax, 0xe1daf0
call fcn.004035fc
call fcn.00402ae8
mov ebx, dword [0xe1dd98]
test ebx, ebx
jle 0x419d85
mov dword [0xe1dd94], 1
mov eax, 0xe1daf0
call fcn.00403410
call fcn.00402ae8
mov edx, eax
add edx, 0x10
mov eax, 0xe1daf0
call fcn.004035fc
call fcn.00402ae8
push 0
mov edx, 0xe1dd8c
mov ecx, 4
mov eax, 0xe1daf0
call fcn.004032ec
call fcn.00402ae8
push 0
mov edx, 0xe1dd90
mov ecx, 4
mov eax, 0xe1daf0
call fcn.004032ec
call fcn.00402ae8
cmp dword [0xe1dd8c], 0
jle 0x419d55
mov eax, dword [0xe1dd8c]
add eax, dword [0xe1dd90]
cmp esi, eax
jge 0x419d55
mov esi, dword [0xe1dd8c]
add esi, dword [0xe1dd90]
mov eax, 0xe1daf0
call fcn.00403410
call fcn.00402ae8
mov edx, eax
add edx, 0x10
mov eax, 0xe1daf0
call fcn.004035fc
call fcn.00402ae8
inc dword [0xe1dd94]
dec ebx
jne 0x419cd8
lea eax, [esi + 0x199]
mov dword [0xe1dd94], eax
test esi, esi
je 0x419dab
mov eax, 0xe1daf0
call fcn.00403460
call fcn.00402ae8
cmp eax, dword [0xe1dd94]
jg 0x419dc2
lea edx, [ebp - 0x18]
xor eax, eax
call fcn.00402e74
mov eax, dword [ebp - 0x18]
mov edx, 0x26
call fcn.00418fc0
mov edx, esi
mov eax, 0xe1daf0
call fcn.004035fc
call fcn.00402ae8
push 0
mov edx, dword [0x41bc1c]
mov ecx, 0x199
mov eax, 0xe1daf0
call fcn.004032ec
call fcn.00402ae8
mov eax, dword [0x41bc1c]
cmp byte [eax + 0x194], 0
je 0x419e16
mov eax, dword [0x41bc1c]
add eax, 0x187
push eax
push 0xffffffffffffffff
push 0
call fcn.00406994
mov dword [0x41ba5c], eax
mov eax, dword [0x41bc1c]
cmp byte [eax + 0x194], 0
je 0x419e34
call sub.kernel32.dll_GetLastError_1
cmp eax, 0xb7
je 0x41a7d0
call fcn.004185b4
call fcn.00419804
call fcn.004197dc
jmp 0x419fa1
mov edx, dword [0xe1dd94]
mov eax, 0xe1daf0
call fcn.004035fc
call fcn.00402ae8
push 0
mov edx, dword [0x41bb50]
mov ecx, 0x11
mov eax, 0xe1daf0
call fcn.004032ec
call fcn.00402ae8
mov ebx, dword [0x41bb50]
mov ebx, dword [ebx + 1]
test ebx, ebx
jne 0x419eab
mov eax, dword [0x41bb50]
cmp dword [eax + 5], 0
jne 0x419eab
mov eax, dword [0x41bb50]
cmp dword [eax + 9], 0
jne 0x419eab
mov eax, dword [0x41bb50]
cmp dword [eax + 0xd], 0
je 0x419fc5
add dword [0xe1dd94], 0x11
mov eax, dword [0x41bb50]
add dword [0xe1dd94], ebx
mov eax, dword [0x41bc1c]
cmp byte [eax + 0x193], 0
je 0x419f72
xor eax, eax
mov dword [0xe1dd98], eax
jmp 0x419f3c
mov edx, dword [0xe1dd94]
mov eax, 0xe1daf0
call fcn.004035fc
call fcn.00402ae8
push 0
mov edx, 0xe1dd9c
mov ecx, 4
mov eax, 0xe1daf0
call fcn.004032ec
call fcn.00402ae8
mov eax, dword [0xe1dd9c]
add dword [0xe1dd98], eax
push 0
mov edx, 0xe1dd9c
mov ecx, 4
mov eax, 0xe1daf0
call fcn.004032ec
call fcn.00402ae8
mov eax, dword [0xe1dd9c]
add eax, 8
add dword [0xe1dd94], eax
cmp dword [0xe1dd94], 0
jl 0x419f80
mov eax, 0xe1daf0
call fcn.00403460
call fcn.00402ae8
cmp eax, dword [0xe1dd94]
jle 0x419f80
mov eax, dword [0x41bb50]
mov eax, dword [eax + 5]
cmp eax, dword [0xe1dd98]
jg 0x419ed8
jmp 0x419f80
mov eax, dword [0x41bb50]
mov eax, dword [eax + 5]
add dword [0xe1dd94], eax
add dword [0xe1dd94], 4
mov eax, dword [0x41bb50]
mov eax, dword [eax + 5]
cdq
add dword [0x41ba4c], eax
adc dword [0x41ba50], edx
call fcn.004197dc
cmp dword [0xe1dd94], 0
jl 0x419fc5
mov eax, 0xe1daf0
call fcn.00403460
call fcn.00402ae8
cmp eax, dword [0xe1dd94]
jg 0x419e48
cmp dword [0x41ba50], 0
jne 0x419fd5
cmp dword [0x41ba4c], 0
je 0x41a019
cmp dword [0x41ba50], 0
jne 0x419feb
cmp dword [0x41ba4c], 0
jbe 0x41a030
jmp 0x419fed
jle 0x41a030
mov eax, dword [0x41bb50]
cmp dword [eax + 1], 0
jne 0x41a019
mov eax, dword [0x41bb50]
cmp dword [eax + 5], 0
jne 0x41a019
mov eax, dword [0x41bb50]
cmp dword [eax + 9], 0
jne 0x41a019
mov eax, dword [0x41bb50]
cmp dword [eax + 0xd], 0
je 0x41a030
lea edx, [ebp - 0x1c]
xor eax, eax
call fcn.00402e74
mov eax, dword [ebp - 0x1c]
mov edx, 0xd
call fcn.00418fc0
mov eax, dword [0x41bc1c]
movzx eax, byte [eax + 1]
cmp eax, 5
ja case.0x41a042.0
jmp dword [eax*4 + 0x41a049]
lea edx, [ebp - 0x20]
mov eax, 0x10
call fcn.00418a9c
mov edx, dword [ebp - 0x20]
mov eax, 0x41ba38
call fcn.00404ae8
jmp 0x41a154
lea edx, [ebp - 0x24]
mov eax, 5
call fcn.00418a9c
mov edx, dword [ebp - 0x24]
mov eax, 0x41ba38
call fcn.00404ae8
jmp 0x41a154
lea eax, [ebp - 0x28]
call fcn.00418b44
mov edx, dword [ebp - 0x28]
mov eax, 0x41ba38
call fcn.00404ae8
jmp 0x41a154
mov eax, dword [0x41bb54]
movzx eax, byte [eax]
mov edx, dword [0x41bc5c]
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.00418894
mov edx, dword [ebp - 0x2c]
mov eax, 0x41ba38
call fcn.00404ae8
cmp dword [0x41ba38], 0
jne 0x41a154
xor edx, edx
xor eax, eax
call fcn.00418fc0
jmp 0x41a154
lea eax, [ebp - 0x38]
mov edx, dword [0x41bc1c]
add edx, 0x82
mov ecx, 0x105
call fcn.00404d04
mov eax, dword [ebp - 0x38]
lea edx, [ebp - 0x34]
call fcn.00418b90
mov edx, dword [ebp - 0x34]
mov eax, 0x41ba38
call fcn.00404ae8
jmp 0x41a154
lea edx, [ebp - 0x3c]
mov al, 1
call fcn.004189a4
mov edx, dword [ebp - 0x3c]
mov eax, 0x41ba38
call fcn.00404ae8
lea edx, [ebp - 0x40]
mov eax, dword [0x41ba38]
call fcn.004086c8
mov edx, dword [ebp - 0x40]
mov eax, 0x41ba38
call fcn.00404ae8
lea edx, [ebp - 0x44]
mov eax, dword [0x41ba38]
call fcn.004085fc
mov eax, dword [ebp - 0x44]
mov al, byte [eax]
call fcn.00402ed8
sub al, 0x41
inc eax
call fcn.004087c0
mov dword [0xe1ddac], eax
mov dword [0xe1ddb0], edx
mov eax, dword [0x41ba4c]
mov edx, dword [0x41ba50]
cmp edx, dword [0xe1ddb0]
jne 0x41a1bb
cmp eax, dword [0xe1ddac]
jbe 0x41a23a
jmp 0x41a1bd
jle 0x41a23a
lea eax, [ebp - 0x48]
push eax
lea edx, [ebp - 0x64]
mov eax, dword [0x41ba38]
call fcn.004085fc
mov eax, dword [ebp - 0x64]
mov al, byte [eax]
call fcn.00402ed8
mov byte [ebp - 0x60], al
mov byte [ebp - 0x5c], 2
push dword [0xe1ddb0]
push dword [0xe1ddac]
lea eax, [ebp - 0x68]
call fcn.0041920c
mov eax, dword [ebp - 0x68]
mov dword [ebp - 0x58], eax
mov byte [ebp - 0x54], 0xb
push dword [0x41ba50]
push dword [0x41ba4c]
lea eax, [ebp - 0x6c]
call fcn.0041920c
mov eax, dword [ebp - 0x6c]
mov dword [ebp - 0x50], eax
mov byte [ebp - 0x4c], 0xb
lea edx, [ebp - 0x60]
mov ecx, 2
mov eax, 0x41ab00
call fcn.00408ddc
mov eax, dword [ebp - 0x48]
mov edx, 0x70
call fcn.00418fc0
mov eax, dword [0x41ba38]
call fcn.00418c3c
lea edx, [esi + 0x199]
mov eax, 0xe1daf0
call fcn.004035fc
call fcn.00402ae8
jmp 0x41a7a6
push 0
mov edx, dword [0x41bb50]
mov ecx, 0x11
mov eax, 0xe1daf0
call fcn.004032ec
call fcn.00402ae8
mov eax, dword [0x41bb50]
cmp dword [eax + 1], 0
jne 0x41a2aa
mov eax, dword [0x41bb50]
cmp dword [eax + 5], 0
jne 0x41a2aa
mov eax, dword [0x41bb50]
cmp dword [eax + 9], 0
jne 0x41a2aa
mov eax, dword [0x41bb50]
cmp dword [eax + 0xd], 0
je 0x41a7e7
mov eax, dword [0x41bb50]
cmp byte [eax], 2
jne 0x41a2cd
lea edx, [ebp - 0x70]
xor eax, eax
call fcn.004189a4
mov edx, dword [ebp - 0x70]
mov eax, 0xe1dda0
call fcn.00404ae8
jmp 0x41a2dd
mov eax, 0xe1dda0
mov edx, dword [0x41ba38]
call fcn.00404ae8
mov eax, dword [0xe1dda0]
call fcn.00404d30
mov dword [0xe1dd98], eax
mov edx, dword [0x41bb50]
mov edx, dword [edx + 1]
add edx, dword [0xe1dd98]
mov eax, 0xe1dda0
call fcn.004050bc
push 0
mov eax, 0xe1dda0
call fcn.00404f88
mov edx, dword [0xe1dd98]
lea edx, [eax + edx]
mov ecx, dword [0x41bb50]
mov ecx, dword [ecx + 1]
mov eax, 0xe1daf0
call fcn.004032ec
call fcn.00402ae8
mov eax, 0xe1dda0
call fcn.00404f88
mov edx, dword [0xe1dd98]
add eax, edx
mov edx, dword [0x41bb50]
mov edx, dword [edx + 1]
call fcn.00417df0
mov dword [0xe1dd90], eax
mov eax, dword [0x41bb50]
test byte [eax + 0xd], 0x10
jne 0x41a74a
mov ebx, dword [0x41bb50]
mov bl, byte [ebx]
mov eax, ebx
dec al
je 0x41a37a
dec al
je 0x41a38c
jmp 0x41a39c
mov eax, 0x41ba3c
mov edx, dword [0xe1dda0]
call fcn.00404ae8
jmp 0x41a39c
mov eax, 0x41ba40
mov edx, dword [0xe1dda0]
call fcn.00404ae8
mov eax, dword [0x41bb50]
sub bl, 2
je 0x41a3e8
mov eax, dword [0xe1dda4]
call fcn.0040583c
inc eax
push eax
mov eax, 0xe1dda4
mov ecx, 1
mov edx, dword [0x41884c]
call fcn.00405a18
add esp, 4
mov eax, dword [0xe1dda4]
call fcn.00405844
mov edx, dword [0xe1dda4]
lea eax, [edx + eax*4]
mov edx, dword [0xe1dda0]
call fcn.00404ae8
mov eax, dword [0x41bbf4]
mov byte [eax], 1
xor edx, edx
mov eax, dword [0xe1dda0]
call fcn.0040843c
mov edx, dword [0xe1dda0]
mov eax, 0xe1dc3c
call fcn.00403194
xor eax, eax
push ebp
push 0x41a438
push dword fs:[eax]
mov dword fs:[eax], esp
mov edx, 1
mov eax, 0xe1dc3c
call fcn.004035f0
call fcn.00402ae8
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
jmp 0x41a453
xor eax, eax
push ebp
push 0x41a743
push dword fs:[eax]
mov dword fs:[eax], esp
xor eax, eax
mov dword [0xe1dd94], eax
jmp 0x41a6bf
mov eax, dword [0x41bc1c]
cmp byte [eax + 0x193], 0
je 0x41a5e9
push 0
mov edx, 0xe1dd98
mov ecx, 4
mov eax, 0xe1daf0
call fcn.004032ec
call fcn.00402ae8
push 0
mov edx, 0xe1dd9c
mov ecx, 4
mov eax, 0xe1daf0
call fcn.004032ec
call fcn.00402ae8
cmp dword [0xe1dd9c], 0xa00000
jle 0x41a4d8
lea edx, [ebp - 0x74]
xor eax, eax
call fcn.00402e74
mov eax, dword [ebp - 0x74]
mov edx, 8
call fcn.00418fc0
push 0
mov edx, dword [0x41bb9c]
mov ecx, dword [0xe1dd9c]
mov eax, 0xe1daf0
call fcn.004032ec
call fcn.00402ae8
xor eax, eax
mov dword [0xe1ddf8], eax
xor eax, eax
push ebp
push 0x41a534
push dword fs:[eax]
mov dword fs:[eax], esp
push 0xe1ddf8
push 0xe1ddfc
mov eax, dword [0x41bb9c]
mov ecx, dword [0xe1dd98]
mov edx, dword [0xe1dd9c]
call fcn.00413eb8
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
jmp 0x41a54d
xor eax, eax
push ebp
push 0x41a5e2
push dword fs:[eax]
mov dword fs:[eax], esp
xor eax, eax
push ebp
push 0x41a590
push dword fs:[eax]
mov dword fs:[eax], esp
push 0
mov edx, dword [0xe1ddf8]
mov ecx, dword [0xe1ddfc]
mov eax, 0xe1dc3c
call fcn.0040330c
call fcn.00402ae8
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
jmp 0x41a5ab
mov edx, dword [0xe1ddfc]
mov eax, dword [0xe1ddf8]
call fcn.00417df0
add dword [0xe1dd90], eax
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x41a698
cmp dword [0xe1ddf8], 0
je 0x41a5e1
mov eax, dword [0xe1ddf8]
call fcn.00402a14
ret
mov eax, dword [0x41bb50]
mov esi, edi
sub esi, dword [0xe1dd94]
cmp esi, 0xa00000
jle 0x41a60a
mov dword [0xe1dd98], 0xa00000
jmp 0x41a615
mov eax, dword [0x41bb50]
mov dword [0xe1dd98], esi
push 0
mov edx, dword [0x41bb9c]
mov ecx, dword [0xe1dd98]
mov eax, 0xe1daf0
call fcn.004032ec
call fcn.00402ae8
xor eax, eax
push ebp
push 0x41a667
push dword fs:[eax]
mov dword fs:[eax], esp
push 0
mov edx, dword [0x41bb9c]
mov ecx, dword [0xe1dd98]
mov eax, 0xe1dc3c
call fcn.0040330c
call fcn.00402ae8
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
jmp 0x41a682
mov eax, dword [0x41bb9c]
mov edx, dword [0xe1dd98]
call fcn.00417df0
add dword [0xe1dd90], eax
mov eax, dword [0xe1dd98]
cdq
add dword [0x41ba54], eax
adc dword [0x41ba58], edx
mov eax, dword [0xe1dd98]
add dword [0xe1dd94], eax
call fcn.00419948
call fcn.004197dc
mov edi, dword [0x41bb50]
mov edi, dword [edi + 5]
cmp edi, dword [0xe1dd94]
jg 0x41a46d
push 0
mov edx, 0xe1dd8c
mov ecx, 4
mov eax, 0xe1daf0
call fcn.004032ec
call fcn.00402ae8
mov eax, dword [0xe1dd8c]
cmp eax, dword [0xe1dd90]
je 0x41a713
lea edx, [ebp - 0x78]
xor eax, eax
call fcn.00402e74
mov eax, dword [ebp - 0x78]
mov edx, 0x17
call fcn.00418fc0
mov edx, dword [0x41bb50]
mov edx, dword [edx + 9]
mov eax, dword [0xe1dc3c]
call fcn.004083e4
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x41a793
mov eax, 0xe1dc3c
call fcn.0040332c
call fcn.00402ae8
ret
mov eax, dword [0xe1dda0]
call fcn.00418c3c
push 0
mov edx, 0xe1dd8c
mov ecx, 4
mov eax, 0xe1daf0
call fcn.004032ec
call fcn.00402ae8
mov eax, dword [0xe1dd8c]
cmp eax, dword [0xe1dd90]
je 0x41a793
lea edx, [ebp - 0x7c]
xor eax, eax
call fcn.00402e74
mov eax, dword [ebp - 0x7c]
mov edx, 0x17
call fcn.00418fc0
mov edx, dword [0x41bb50]
mov edx, dword [edx + 0xd]
mov eax, dword [0xe1dda0]
call fcn.0040843c
mov eax, 0xe1daf0
call fcn.00403410
call fcn.00402ae8
mov ebx, eax
mov eax, 0xe1daf0
call fcn.00403460
call fcn.00402ae8
cmp ebx, eax
jl 0x41a25e
jmp 0x41a7e7
lea edx, [ebp - 0x80]
xor eax, eax
call fcn.00402e74
mov eax, dword [ebp - 0x80]
mov edx, 0x480
call fcn.00418fc0
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x41a80b
mov eax, 0xe1daf0
call fcn.0040332c
call fcn.00402ae8
ret