Function at 0x419100
Capabilities:
Parse pe header

Disassembly:
push ebp
mov ebp, esp
mov ecx, 0xc
push 0
push 0
dec ecx
jne 0x419108
push ecx
push ebx
push esi
push edi
mov eax, 0x419060
call fcn.00406828
mov edi, 0x41a94c
xor eax, eax
push ebp
push 0x419df0
push dword fs:[eax]
mov dword fs:[eax], esp
xor edx, edx
push ebp
push 0x419da5
push dword fs:[edx]
mov dword fs:[edx], esp
call fcn.0040da60
call fcn.00418ea0
call fcn.00418e78
mov eax, 0x81cc04
mov edx, dword [0x4182d4]
call fcn.0040599c
mov eax, dword [0x41aaf0]
mov byte [eax], 0
lea edx, [ebp - 0x14]
xor eax, eax
call fcn.00402dec
mov edx, dword [ebp - 0x14]
mov eax, 0x81c950
call fcn.0040310c
xor eax, eax
push ebp
push 0x419bfa
push dword fs:[eax]
mov dword fs:[eax], esp
mov edx, 1
mov eax, 0x81c950
call fcn.0040354c
call fcn.00402ad8
xor eax, eax
push ebp
push 0x419be9
push dword fs:[eax]
mov dword fs:[eax], esp
xor esi, esi
push 0
mov edx, 0x81cbe8
mov ecx, 2
mov eax, 0x81c950
call fcn.00403264
call fcn.00402ad8
cmp word [0x81cbe8], 0x5a4d
jne 0x419219
mov edx, 0x3c
mov eax, 0x81c950
call fcn.00403574
call fcn.00402ad8
push 0
mov edx, 0x81cbe8
mov ecx, 2
mov eax, 0x81c950
call fcn.00403264
call fcn.00402ad8
movzx edx, word [0x81cbe8]
mov eax, 0x81c950
call fcn.00403574
call fcn.00402ad8
push 0
mov edx, 0x81cbf4
mov ecx, 4
mov eax, 0x81c950
call fcn.00403264
call fcn.00402ad8
cmp dword [0x81cbf4], 0x4550
jne 0x4193bd
mov eax, 0x81c950
call fcn.00403388
call fcn.00402ad8
mov edx, eax
add edx, 2
mov eax, 0x81c950
call fcn.00403574
call fcn.00402ad8
push 0
mov edx, 0x81cbe8
mov ecx, 2
mov eax, 0x81c950
call fcn.00403264
call fcn.00402ad8
movzx eax, word [0x81cbe8]
mov dword [0x81cbf8], eax
mov eax, 0x81c950
call fcn.00403388
call fcn.00402ad8
mov edx, eax
add edx, 0xc
mov eax, 0x81c950
call fcn.00403574
call fcn.00402ad8
push 0
mov edx, 0x81cbe8
mov ecx, 2
mov eax, 0x81c950
call fcn.00403264
call fcn.00402ad8
mov eax, 0x81c950
call fcn.00403388
call fcn.00402ad8
mov edx, eax
add edx, 2
movzx eax, word [0x81cbe8]
add edx, eax
mov eax, 0x81c950
call fcn.00403574
call fcn.00402ad8
mov ebx, dword [0x81cbf8]
test ebx, ebx
jle 0x4193bd
mov dword [0x81cbf4], 1
mov eax, 0x81c950
call fcn.00403388
call fcn.00402ad8
mov edx, eax
add edx, 0x10
mov eax, 0x81c950
call fcn.00403574
call fcn.00402ad8
push 0
mov edx, 0x81cbec
mov ecx, 4
mov eax, 0x81c950
call fcn.00403264
call fcn.00402ad8
push 0
mov edx, 0x81cbf0
mov ecx, 4
mov eax, 0x81c950
call fcn.00403264
call fcn.00402ad8
cmp dword [0x81cbec], 0
jle 0x41938d
mov eax, dword [0x81cbec]
add eax, dword [0x81cbf0]
cmp esi, eax
jge 0x41938d
mov esi, dword [0x81cbec]
add esi, dword [0x81cbf0]
mov eax, 0x81c950
call fcn.00403388
call fcn.00402ad8
mov edx, eax
add edx, 0x10
mov eax, 0x81c950
call fcn.00403574
call fcn.00402ad8
inc dword [0x81cbf4]
dec ebx
jne 0x419310
lea eax, [esi + 0xd]
mov dword [0x81cbf4], eax
test esi, esi
je 0x4193e0
mov eax, 0x81c950
call fcn.004033d8
call fcn.00402ad8
cmp eax, dword [0x81cbf4]
jg 0x4193f7
lea edx, [ebp - 0x18]
xor eax, eax
call fcn.00402dec
mov eax, dword [ebp - 0x18]
mov edx, 0x26
call fcn.004186a4
mov edx, esi
mov eax, 0x81c950
call fcn.00403574
call fcn.00402ad8
push 0
mov edx, dword [0x41ab18]
mov ecx, 0xd
mov eax, 0x81c950
call fcn.00403264
call fcn.00402ad8
jmp 0x419578
mov edx, dword [0x81cbf4]
mov eax, 0x81c950
call fcn.00403574
call fcn.00402ad8
push 0
mov edx, dword [0x41aa4c]
mov ecx, 0x11
mov eax, 0x81c950
call fcn.00403264
call fcn.00402ad8
mov ebx, dword [0x41aa4c]
mov ebx, dword [ebx + 1]
test ebx, ebx
jne 0x41948c
mov eax, dword [0x41aa4c]
cmp dword [eax + 5], 0
jne 0x41948c
mov eax, dword [0x41aa4c]
cmp dword [eax + 9], 0
jne 0x41948c
mov eax, dword [0x41aa4c]
cmp dword [eax + 0xd], 0
je 0x41959c
add dword [0x81cbf4], 0x11
mov eax, dword [0x41aa4c]
add dword [0x81cbf4], ebx
mov eax, dword [0x41ab18]
cmp byte [eax + 0xb], 0
je 0x419550
xor eax, eax
mov dword [0x81cbf8], eax
jmp 0x41951a
mov edx, dword [0x81cbf4]
mov eax, 0x81c950
call fcn.00403574
call fcn.00402ad8
push 0
mov edx, 0x81cbfc
mov ecx, 4
mov eax, 0x81c950
call fcn.00403264
call fcn.00402ad8
mov eax, dword [0x81cbfc]
add dword [0x81cbf8], eax
push 0
mov edx, 0x81cbfc
mov ecx, 4
mov eax, 0x81c950
call fcn.00403264
call fcn.00402ad8
mov eax, dword [0x81cbfc]
add eax, 8
add dword [0x81cbf4], eax
cmp dword [0x81cbf4], 0
jl 0x41955e
mov eax, 0x81c950
call fcn.004033d8
call fcn.00402ad8
cmp eax, dword [0x81cbf4]
jle 0x41955e
mov eax, dword [0x41aa4c]
mov eax, dword [eax + 5]
cmp eax, dword [0x81cbf8]
jg 0x4194b6
jmp 0x41955e
mov eax, dword [0x41aa4c]
mov eax, dword [eax + 5]
add dword [0x81cbf4], eax
add dword [0x81cbf4], 4
mov eax, dword [0x41aa4c]
mov eax, dword [eax + 5]
cdq
add dword [edi], eax
adc dword [edi + 4], edx
call fcn.00418e78
cmp dword [0x81cbf4], 0
jl 0x41959c
mov eax, 0x81c950
call fcn.004033d8
call fcn.00402ad8
cmp eax, dword [0x81cbf4]
jg 0x419429
cmp dword [edi + 4], 0
jne 0x4195a5
cmp dword [edi], 0
je 0x4195e2
cmp dword [edi + 4], 0
jne 0x4195b4
cmp dword [edi], 0
jbe 0x4195f9
jmp 0x4195b6
jle 0x4195f9
mov eax, dword [0x41aa4c]
cmp dword [eax + 1], 0
jne 0x4195e2
mov eax, dword [0x41aa4c]
cmp dword [eax + 5], 0
jne 0x4195e2
mov eax, dword [0x41aa4c]
cmp dword [eax + 9], 0
jne 0x4195e2
mov eax, dword [0x41aa4c]
cmp dword [eax + 0xd], 0
je 0x4195f9
lea edx, [ebp - 0x1c]
xor eax, eax
call fcn.00402dec
mov eax, dword [ebp - 0x1c]
mov edx, 0xd
call fcn.004186a4
lea eax, [ebp - 0x20]
call fcn.004182fc
mov edx, dword [ebp - 0x20]
mov eax, 0x41a940
call fcn.00404a60
lea edx, [ebp - 0x24]
mov eax, dword [0x41a940]
call fcn.00408584
mov eax, dword [ebp - 0x24]
mov al, byte [eax]
call fcn.00402e50
sub al, 0x41
inc eax
call fcn.00408748
mov dword [0x81cc08], eax
mov dword [0x81cc0c], edx
mov eax, dword [edi]
mov edx, dword [edi + 4]
cmp edx, dword [0x81cc0c]
jne 0x419650
cmp eax, dword [0x81cc08]
jbe 0x4196c8
jmp 0x419652
jle 0x4196c8
lea eax, [ebp - 0x28]
push eax
lea edx, [ebp - 0x44]
mov eax, dword [0x41a940]
call fcn.00408584
mov eax, dword [ebp - 0x44]
mov al, byte [eax]
call fcn.00402e50
mov byte [ebp - 0x40], al
mov byte [ebp - 0x3c], 2
push dword [0x81cc0c]
push dword [0x81cc08]
lea eax, [ebp - 0x48]
call fcn.004188c0
mov eax, dword [ebp - 0x48]
mov dword [ebp - 0x38], eax
mov byte [ebp - 0x34], 0xb
push dword [edi + 4]
push dword [edi]
lea eax, [ebp - 0x4c]
call fcn.004188c0
mov eax, dword [ebp - 0x4c]
mov dword [ebp - 0x30], eax
mov byte [ebp - 0x2c], 0xb
lea edx, [ebp - 0x40]
mov ecx, 2
mov eax, 0x419e08
call fcn.00408d40
mov eax, dword [ebp - 0x28]
mov edx, 0x70
call fcn.004186a4
mov eax, dword [0x41a940]
call fcn.00408248
lea edx, [esi + 0xd]
mov eax, 0x81c950
call fcn.00403574
call fcn.00402ad8
jmp 0x419ba4
push 0
mov edx, dword [0x41aa4c]
mov ecx, 0x11
mov eax, 0x81c950
call fcn.00403264
call fcn.00402ad8
mov eax, dword [0x41aa4c]
cmp dword [eax + 1], 0
jne 0x419735
mov eax, dword [0x41aa4c]
cmp dword [eax + 5], 0
jne 0x419735
mov eax, dword [0x41aa4c]
cmp dword [eax + 9], 0
jne 0x419735
mov eax, dword [0x41aa4c]
cmp dword [eax + 0xd], 0
je 0x419bcc
mov eax, 0x81cc00
mov edx, dword [0x41a940]
call fcn.00404a60
mov eax, dword [0x41a940]
call fcn.00404ca8
mov edx, eax
mov eax, dword [0x41aa4c]
add edx, dword [eax + 1]
mov eax, 0x81cc00
call fcn.00405034
push 0
mov eax, dword [0x41a940]
call fcn.00404ca8
mov ebx, eax
mov eax, 0x81cc00
call fcn.00404f00
lea edx, [eax + ebx]
mov ecx, dword [0x41aa4c]
mov ecx, dword [ecx + 1]
mov eax, 0x81c950
call fcn.00403264
call fcn.00402ad8
mov eax, dword [0x41a940]
call fcn.00404ca8
mov ebx, eax
mov eax, 0x81cc00
call fcn.00404f00
add eax, ebx
mov edx, dword [0x41aa4c]
mov edx, dword [edx + 1]
call fcn.0040d5a0
mov dword [0x81cbf0], eax
mov eax, dword [0x41aa4c]
cmp byte [eax], 0
je 0x4197db
mov eax, 0x41a944
mov edx, dword [0x81cc00]
call fcn.00404a60
mov eax, dword [0x81cc04]
call fcn.004057b4
inc eax
push eax
mov eax, 0x81cc04
mov ecx, 1
mov edx, dword [0x4182d4]
call fcn.00405990
add esp, 4
mov eax, dword [0x81cc04]
call fcn.004057bc
mov edx, dword [0x81cc04]
lea eax, [edx + eax*4]
mov edx, dword [0x81cc00]
call fcn.00404a60
lea edx, [ebp - 0x50]
mov eax, dword [0x81cc00]
call fcn.00408530
mov eax, dword [ebp - 0x50]
call fcn.00408248
mov eax, dword [0x41aaf0]
mov byte [eax], 1
xor edx, edx
mov eax, dword [0x81cc00]
call fcn.00408388
mov edx, dword [0x81cc00]
mov eax, 0x81ca9c
call fcn.0040310c
xor eax, eax
push ebp
push 0x419882
push dword fs:[eax]
mov dword fs:[eax], esp
mov edx, 1
mov eax, 0x81ca9c
call fcn.00403568
call fcn.00402ad8
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
jmp 0x41989d
xor eax, eax
push ebp
push 0x419b8a
push dword fs:[eax]
mov dword fs:[eax], esp
xor eax, eax
mov dword [0x81cbf4], eax
jmp 0x419b06
mov eax, dword [0x41ab18]
cmp byte [eax + 0xb], 0
je 0x419a30
push 0
mov edx, 0x81cbf8
mov ecx, 4
mov eax, 0x81c950
call fcn.00403264
call fcn.00402ad8
push 0
mov edx, 0x81cbfc
mov ecx, 4
mov eax, 0x81c950
call fcn.00403264
call fcn.00402ad8
cmp dword [0x81cbfc], 0x400000
jle 0x41991f
lea edx, [ebp - 0x54]
xor eax, eax
call fcn.00402dec
mov eax, dword [ebp - 0x54]
mov edx, 8
call fcn.004186a4
push 0
mov edx, dword [0x41aa98]
mov ecx, dword [0x81cbfc]
mov eax, 0x81c950
call fcn.00403264
call fcn.00402ad8
xor eax, eax
mov dword [0x81cc58], eax
xor eax, eax
push ebp
push 0x41997b
push dword fs:[eax]
mov dword fs:[eax], esp
push 0x81cc58
push 0x81cc5c
mov eax, dword [0x41aa98]
mov ecx, dword [0x81cbf8]
mov edx, dword [0x81cbfc]
call fcn.0041439c
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
jmp 0x419994
xor eax, eax
push ebp
push 0x419a29
push dword fs:[eax]
mov dword fs:[eax], esp
xor eax, eax
push ebp
push 0x4199d7
push dword fs:[eax]
mov dword fs:[eax], esp
push 0
mov edx, dword [0x81cc58]
mov ecx, dword [0x81cc5c]
mov eax, 0x81ca9c
call fcn.00403284
call fcn.00402ad8
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
jmp 0x4199f2
mov edx, dword [0x81cc5c]
mov eax, dword [0x81cc58]
call fcn.0040d5a0
add dword [0x81cbf0], eax
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x419adf
cmp dword [0x81cc58], 0
je 0x419a28
mov eax, dword [0x81cc58]
call fcn.00402a04
ret
mov eax, dword [0x41aa4c]
mov esi, ebx
sub esi, dword [0x81cbf4]
cmp esi, 0x400000
jle 0x419a51
mov dword [0x81cbf8], 0x400000
jmp 0x419a5c
mov eax, dword [0x41aa4c]
mov dword [0x81cbf8], esi
push 0
mov edx, dword [0x41aa98]
mov ecx, dword [0x81cbf8]
mov eax, 0x81c950
call fcn.00403264
call fcn.00402ad8
xor eax, eax
push ebp
push 0x419aae
push dword fs:[eax]
mov dword fs:[eax], esp
push 0
mov edx, dword [0x41aa98]
mov ecx, dword [0x81cbf8]
mov eax, 0x81ca9c
call fcn.00403284
call fcn.00402ad8
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
jmp 0x419ac9
mov eax, dword [0x41aa98]
mov edx, dword [0x81cbf8]
call fcn.0040d5a0
add dword [0x81cbf0], eax
mov eax, dword [0x81cbf8]
cdq
add dword [0x41a954], eax
adc dword [0x41a958], edx
mov eax, dword [0x81cbf8]
add dword [0x81cbf4], eax
call fcn.00418fc8
call fcn.00418e78
mov ebx, dword [0x41aa4c]
mov ebx, dword [ebx + 5]
cmp ebx, dword [0x81cbf4]
jg 0x4198b7
push 0
mov edx, 0x81cbec
mov ecx, 4
mov eax, 0x81c950
call fcn.00403264
call fcn.00402ad8
mov eax, dword [0x81cbec]
cmp eax, dword [0x81cbf0]
je 0x419b5a
lea edx, [ebp - 0x58]
xor eax, eax
call fcn.00402dec
mov eax, dword [ebp - 0x58]
mov edx, 0x17
call fcn.004186a4
mov edx, dword [0x41aa4c]
mov edx, dword [edx + 9]
mov eax, dword [0x81ca9c]
call fcn.00408330
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x419b91
mov eax, 0x81ca9c
call fcn.004032a4
call fcn.00402ad8
ret
mov eax, 0x81c950
call fcn.00403388
call fcn.00402ad8
mov ebx, eax
mov eax, 0x81c950
call fcn.004033d8
call fcn.00402ad8
cmp ebx, eax
jl 0x4196e9
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x419bf0
mov eax, 0x81c950
call fcn.004032a4
call fcn.00402ad8
ret