Function at 0x419740
Capabilities:
Parse pe header

Disassembly:
push ebp
mov ebp, esp
mov ecx, 0x10
push 0
push 0
dec ecx
jne 0x419748
push ebx
push esi
push edi
mov eax, 0x419678
call fcn.004068b0
mov edi, 0x41b9b0
xor eax, eax
push ebp
push 0x41a568
push dword fs:[eax]
mov dword fs:[eax], esp
xor edx, edx
push ebp
push 0x41a51d
push dword fs:[edx]
mov dword fs:[edx], esp
mov eax, 0x81dd1c
mov edx, dword [0x418734]
call fcn.00405a24
mov eax, dword [0x41bb54]
mov byte [eax], 0
lea edx, [ebp - 0x14]
xor eax, eax
call fcn.00402e74
mov edx, dword [ebp - 0x14]
mov eax, 0x81da68
call fcn.00403194
xor eax, eax
push ebp
push 0x41a364
push dword fs:[eax]
mov dword fs:[eax], esp
mov edx, 1
mov eax, 0x81da68
call fcn.004035d4
call fcn.00402ae8
xor eax, eax
push ebp
push 0x41a353
push dword fs:[eax]
mov dword fs:[eax], esp
xor esi, esi
push 0
mov edx, 0x81dd00
mov ecx, 2
mov eax, 0x81da68
call fcn.004032ec
call fcn.00402ae8
cmp word [0x81dd00], 0x5a4d
jne 0x419849
mov edx, 0x3c
mov eax, 0x81da68
call fcn.004035fc
call fcn.00402ae8
push 0
mov edx, 0x81dd00
mov ecx, 2
mov eax, 0x81da68
call fcn.004032ec
call fcn.00402ae8
movzx edx, word [0x81dd00]
mov eax, 0x81da68
call fcn.004035fc
call fcn.00402ae8
push 0
mov edx, 0x81dd0c
mov ecx, 4
mov eax, 0x81da68
call fcn.004032ec
call fcn.00402ae8
cmp dword [0x81dd0c], 0x4550
jne 0x4199ed
mov eax, 0x81da68
call fcn.00403410
call fcn.00402ae8
mov edx, eax
add edx, 2
mov eax, 0x81da68
call fcn.004035fc
call fcn.00402ae8
push 0
mov edx, 0x81dd00
mov ecx, 2
mov eax, 0x81da68
call fcn.004032ec
call fcn.00402ae8
movzx eax, word [0x81dd00]
mov dword [0x81dd10], eax
mov eax, 0x81da68
call fcn.00403410
call fcn.00402ae8
mov edx, eax
add edx, 0xc
mov eax, 0x81da68
call fcn.004035fc
call fcn.00402ae8
push 0
mov edx, 0x81dd00
mov ecx, 2
mov eax, 0x81da68
call fcn.004032ec
call fcn.00402ae8
mov eax, 0x81da68
call fcn.00403410
call fcn.00402ae8
mov edx, eax
add edx, 2
movzx eax, word [0x81dd00]
add edx, eax
mov eax, 0x81da68
call fcn.004035fc
call fcn.00402ae8
mov ebx, dword [0x81dd10]
test ebx, ebx
jle 0x4199ed
mov dword [0x81dd0c], 1
mov eax, 0x81da68
call fcn.00403410
call fcn.00402ae8
mov edx, eax
add edx, 0x10
mov eax, 0x81da68
call fcn.004035fc
call fcn.00402ae8
push 0
mov edx, 0x81dd04
mov ecx, 4
mov eax, 0x81da68
call fcn.004032ec
call fcn.00402ae8
push 0
mov edx, 0x81dd08
mov ecx, 4
mov eax, 0x81da68
call fcn.004032ec
call fcn.00402ae8
cmp dword [0x81dd04], 0
jle 0x4199bd
mov eax, dword [0x81dd04]
add eax, dword [0x81dd08]
cmp esi, eax
jge 0x4199bd
mov esi, dword [0x81dd04]
add esi, dword [0x81dd08]
mov eax, 0x81da68
call fcn.00403410
call fcn.00402ae8
mov edx, eax
add edx, 0x10
mov eax, 0x81da68
call fcn.004035fc
call fcn.00402ae8
inc dword [0x81dd0c]
dec ebx
jne 0x419940
lea eax, [esi + 0x114]
mov dword [0x81dd0c], eax
test esi, esi
je 0x419a13
mov eax, 0x81da68
call fcn.00403460
call fcn.00402ae8
cmp eax, dword [0x81dd0c]
jg 0x419a2a
lea edx, [ebp - 0x18]
xor eax, eax
call fcn.00402e74
mov eax, dword [ebp - 0x18]
mov edx, 0x26
call fcn.00418cb8
mov edx, esi
mov eax, 0x81da68
call fcn.004035fc
call fcn.00402ae8
push 0
mov edx, dword [0x41bb7c]
mov ecx, 0x114
mov eax, 0x81da68
call fcn.004032ec
call fcn.00402ae8
call fcn.004184b0
call fcn.00419488
call fcn.00419460
jmp 0x419bbd
mov edx, dword [0x81dd0c]
mov eax, 0x81da68
call fcn.004035fc
call fcn.00402ae8
push 0
mov edx, dword [0x41bab0]
mov ecx, 0x12
mov eax, 0x81da68
call fcn.004032ec
call fcn.00402ae8
mov ebx, dword [0x41bab0]
mov ebx, dword [ebx + 2]
test ebx, ebx
jne 0x419ace
mov eax, dword [0x41bab0]
cmp dword [eax + 6], 0
jne 0x419ace
mov eax, dword [0x41bab0]
cmp dword [eax + 0xa], 0
jne 0x419ace
mov eax, dword [0x41bab0]
cmp dword [eax + 0xe], 0
je 0x419be1
add dword [0x81dd0c], 0x12
mov eax, dword [0x41bab0]
add dword [0x81dd0c], ebx
mov eax, dword [0x41bb7c]
cmp byte [eax + 0x111], 0
je 0x419b95
xor eax, eax
mov dword [0x81dd10], eax
jmp 0x419b5f
mov edx, dword [0x81dd0c]
mov eax, 0x81da68
call fcn.004035fc
call fcn.00402ae8
push 0
mov edx, 0x81dd14
mov ecx, 4
mov eax, 0x81da68
call fcn.004032ec
call fcn.00402ae8
mov eax, dword [0x81dd14]
add dword [0x81dd10], eax
push 0
mov edx, 0x81dd14
mov ecx, 4
mov eax, 0x81da68
call fcn.004032ec
call fcn.00402ae8
mov eax, dword [0x81dd14]
add eax, 8
add dword [0x81dd0c], eax
cmp dword [0x81dd0c], 0
jl 0x419ba3
mov eax, 0x81da68
call fcn.00403460
call fcn.00402ae8
cmp eax, dword [0x81dd0c]
jle 0x419ba3
mov eax, dword [0x41bab0]
mov eax, dword [eax + 6]
cmp eax, dword [0x81dd10]
jg 0x419afb
jmp 0x419ba3
mov eax, dword [0x41bab0]
mov eax, dword [eax + 6]
add dword [0x81dd0c], eax
add dword [0x81dd0c], 4
mov eax, dword [0x41bab0]
mov eax, dword [eax + 6]
cdq
add dword [edi], eax
adc dword [edi + 4], edx
call fcn.00419460
cmp dword [0x81dd0c], 0
jl 0x419be1
mov eax, 0x81da68
call fcn.00403460
call fcn.00402ae8
cmp eax, dword [0x81dd0c]
jg 0x419a6b
cmp dword [edi + 4], 0
jne 0x419bea
cmp dword [edi], 0
je 0x419c27
cmp dword [edi + 4], 0
jne 0x419bf9
cmp dword [edi], 0
jbe 0x419c3e
jmp 0x419bfb
jle 0x419c3e
mov eax, dword [0x41bab0]
cmp dword [eax + 2], 0
jne 0x419c27
mov eax, dword [0x41bab0]
cmp dword [eax + 6], 0
jne 0x419c27
mov eax, dword [0x41bab0]
cmp dword [eax + 0xa], 0
jne 0x419c27
mov eax, dword [0x41bab0]
cmp dword [eax + 0xe], 0
je 0x419c3e
lea edx, [ebp - 0x1c]
xor eax, eax
call fcn.00402e74
mov eax, dword [ebp - 0x1c]
mov edx, 0xd
call fcn.00418cb8
mov eax, dword [0x41bb7c]
mov al, byte [eax]
dec al
je 0x419c5a
dec al
je 0x419c79
dec al
je 0x419c98
dec al
je 0x419caf
jmp 0x419cdd
lea edx, [ebp - 0x20]
mov eax, 0x10
call fcn.00418850
mov edx, dword [ebp - 0x20]
mov eax, 0x41b9a0
call fcn.00404ae8
jmp 0x419d21
lea edx, [ebp - 0x24]
mov eax, 5
call fcn.00418850
mov edx, dword [ebp - 0x24]
mov eax, 0x41b9a0
call fcn.00404ae8
jmp 0x419d21
lea eax, [ebp - 0x28]
call fcn.004188f8
mov edx, dword [ebp - 0x28]
mov eax, 0x41b9a0
call fcn.00404ae8
jmp 0x419d21
lea eax, [ebp - 0x30]
mov edx, dword [0x41bb7c]
inc edx
mov ecx, 0x105
call fcn.00404d04
mov eax, dword [ebp - 0x30]
lea edx, [ebp - 0x2c]
call fcn.00418944
mov edx, dword [ebp - 0x2c]
mov eax, 0x41b9a0
call fcn.00404ae8
jmp 0x419d21
lea edx, [ebp - 0x34]
mov al, 1
call fcn.0041875c
mov edx, dword [ebp - 0x34]
mov eax, 0x41b9a0
call fcn.00404ae8
jmp 0x419d21
mov al, byte [0x41a578]
push eax
lea eax, [ebp - 0x38]
push eax
mov ecx, 0x41a584
mov edx, 0x41a590
mov eax, dword [0x41b9a0]
call fcn.0040ca74
mov edx, dword [ebp - 0x38]
mov eax, 0x41b9a0
call fcn.00404ae8
mov edx, dword [0x41b9a0]
mov eax, 0x41a590
call fcn.00405074
test eax, eax
jg 0x419cf6
lea edx, [ebp - 0x3c]
mov eax, dword [0x41b9a0]
call fcn.00408614
mov eax, dword [ebp - 0x3c]
mov al, byte [eax]
call fcn.00402ed8
sub al, 0x41
inc eax
call fcn.004087d8
mov dword [0x81dd20], eax
mov dword [0x81dd24], edx
mov eax, dword [edi]
mov edx, dword [edi + 4]
cmp edx, dword [0x81dd24]
jne 0x419d77
cmp eax, dword [0x81dd20]
jbe 0x419def
jmp 0x419d79
jle 0x419def
lea eax, [ebp - 0x40]
push eax
lea edx, [ebp - 0x5c]
mov eax, dword [0x41b9a0]
call fcn.00408614
mov eax, dword [ebp - 0x5c]
mov al, byte [eax]
call fcn.00402ed8
mov byte [ebp - 0x58], al
mov byte [ebp - 0x54], 2
push dword [0x81dd24]
push dword [0x81dd20]
lea eax, [ebp - 0x60]
call fcn.00418e90
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.00418e90
mov eax, dword [ebp - 0x64]
mov dword [ebp - 0x48], eax
mov byte [ebp - 0x44], 0xb
lea edx, [ebp - 0x58]
mov ecx, 2
mov eax, 0x41a59c
call fcn.00408ddc
mov eax, dword [ebp - 0x40]
mov edx, 0x70
call fcn.00418cb8
mov eax, dword [0x41b9a0]
call fcn.004082d8
lea edx, [esi + 0x114]
mov eax, 0x81da68
call fcn.004035fc
call fcn.00402ae8
jmp 0x41a30e
push 0
mov edx, dword [0x41bab0]
mov ecx, 0x12
mov eax, 0x81da68
call fcn.004032ec
call fcn.00402ae8
mov eax, dword [0x41bab0]
cmp dword [eax + 2], 0
jne 0x419e5f
mov eax, dword [0x41bab0]
cmp dword [eax + 6], 0
jne 0x419e5f
mov eax, dword [0x41bab0]
cmp dword [eax + 0xa], 0
jne 0x419e5f
mov eax, dword [0x41bab0]
cmp dword [eax + 0xe], 0
je 0x41a336
mov eax, dword [0x41bab0]
cmp byte [eax + 1], 0
je 0x419e83
lea edx, [ebp - 0x68]
xor eax, eax
call fcn.0041875c
mov edx, dword [ebp - 0x68]
mov eax, 0x81dd18
call fcn.00404ae8
jmp 0x419e93
mov eax, 0x81dd18
mov edx, dword [0x41b9a0]
call fcn.00404ae8
mov eax, dword [0x81dd18]
call fcn.00404d30
mov dword [0x81dd10], eax
mov edx, dword [0x41bab0]
mov edx, dword [edx + 2]
add edx, dword [0x81dd10]
mov eax, 0x81dd18
call fcn.004050bc
push 0
mov eax, 0x81dd18
call fcn.00404f88
mov edx, dword [0x81dd10]
lea edx, [eax + edx]
mov ecx, dword [0x41bab0]
mov ecx, dword [ecx + 2]
mov eax, 0x81da68
call fcn.004032ec
call fcn.00402ae8
mov eax, 0x81dd18
call fcn.00404f88
mov edx, dword [0x81dd10]
add eax, edx
mov edx, dword [0x41bab0]
mov edx, dword [edx + 2]
call fcn.00417de4
mov dword [0x81dd08], eax
mov eax, dword [0x41bab0]
cmp byte [eax], 0
je 0x419f27
mov eax, 0x41b9a4
mov edx, dword [0x81dd18]
call fcn.00404ae8
mov eax, dword [0x41bab0]
cmp byte [eax + 1], 0
je 0x419f42
mov eax, 0x41b9a8
mov edx, dword [0x81dd18]
call fcn.00404ae8
mov eax, dword [0x81dd1c]
call fcn.0040583c
inc eax
push eax
mov eax, 0x81dd1c
mov ecx, 1
mov edx, dword [0x418734]
call fcn.00405a18
add esp, 4
mov eax, dword [0x81dd1c]
call fcn.00405844
mov edx, dword [0x81dd1c]
lea eax, [edx + eax*4]
mov edx, dword [0x81dd18]
call fcn.00404ae8
lea edx, [ebp - 0x6c]
mov eax, dword [0x81dd18]
call fcn.004085c0
mov eax, dword [ebp - 0x6c]
call fcn.004082d8
mov eax, dword [0x41bb54]
mov byte [eax], 1
xor edx, edx
mov eax, dword [0x81dd18]
call fcn.00408418
mov edx, dword [0x81dd18]
mov eax, 0x81dbb4
call fcn.00403194
xor eax, eax
push ebp
push 0x419fe9
push dword fs:[eax]
mov dword fs:[eax], esp
mov edx, 1
mov eax, 0x81dbb4
call fcn.004035f0
call fcn.00402ae8
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
jmp 0x41a004
xor eax, eax
push ebp
push 0x41a2f4
push dword fs:[eax]
mov dword fs:[eax], esp
xor eax, eax
mov dword [0x81dd0c], eax
jmp 0x41a270
mov eax, dword [0x41bb7c]
cmp byte [eax + 0x111], 0
je 0x41a19a
push 0
mov edx, 0x81dd10
mov ecx, 4
mov eax, 0x81da68
call fcn.004032ec
call fcn.00402ae8
push 0
mov edx, 0x81dd14
mov ecx, 4
mov eax, 0x81da68
call fcn.004032ec
call fcn.00402ae8
cmp dword [0x81dd14], 0x400000
jle 0x41a089
lea edx, [ebp - 0x70]
xor eax, eax
call fcn.00402e74
mov eax, dword [ebp - 0x70]
mov edx, 8
call fcn.00418cb8
push 0
mov edx, dword [0x41bafc]
mov ecx, dword [0x81dd14]
mov eax, 0x81da68
call fcn.004032ec
call fcn.00402ae8
xor eax, eax
mov dword [0x81dd70], eax
xor eax, eax
push ebp
push 0x41a0e5
push dword fs:[eax]
mov dword fs:[eax], esp
push 0x81dd70
push 0x81dd74
mov eax, dword [0x41bafc]
mov ecx, dword [0x81dd10]
mov edx, dword [0x81dd14]
call fcn.00413eac
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
jmp 0x41a0fe
xor eax, eax
push ebp
push 0x41a193
push dword fs:[eax]
mov dword fs:[eax], esp
xor eax, eax
push ebp
push 0x41a141
push dword fs:[eax]
mov dword fs:[eax], esp
push 0
mov edx, dword [0x81dd70]
mov ecx, dword [0x81dd74]
mov eax, 0x81dbb4
call fcn.0040330c
call fcn.00402ae8
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
jmp 0x41a15c
mov edx, dword [0x81dd74]
mov eax, dword [0x81dd70]
call fcn.00417de4
add dword [0x81dd08], eax
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x41a249
cmp dword [0x81dd70], 0
je 0x41a192
mov eax, dword [0x81dd70]
call fcn.00402a14
ret
mov eax, dword [0x41bab0]
mov esi, ebx
sub esi, dword [0x81dd0c]
cmp esi, 0x400000
jle 0x41a1bb
mov dword [0x81dd10], 0x400000
jmp 0x41a1c6
mov eax, dword [0x41bab0]
mov dword [0x81dd10], esi
push 0
mov edx, dword [0x41bafc]
mov ecx, dword [0x81dd10]
mov eax, 0x81da68
call fcn.004032ec
call fcn.00402ae8
xor eax, eax
push ebp
push 0x41a218
push dword fs:[eax]
mov dword fs:[eax], esp
push 0
mov edx, dword [0x41bafc]
mov ecx, dword [0x81dd10]
mov eax, 0x81dbb4
call fcn.0040330c
call fcn.00402ae8
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
jmp 0x41a233
mov eax, dword [0x41bafc]
mov edx, dword [0x81dd10]
call fcn.00417de4
add dword [0x81dd08], eax
mov eax, dword [0x81dd10]
cdq
add dword [0x41b9b8], eax
adc dword [0x41b9bc], edx
mov eax, dword [0x81dd10]
add dword [0x81dd0c], eax
call fcn.004195cc
call fcn.00419460
mov ebx, dword [0x41bab0]
mov ebx, dword [ebx + 6]
cmp ebx, dword [0x81dd0c]
jg 0x41a01e
push 0
mov edx, 0x81dd04
mov ecx, 4
mov eax, 0x81da68
call fcn.004032ec
call fcn.00402ae8
mov eax, dword [0x81dd04]
cmp eax, dword [0x81dd08]
je 0x41a2c4
lea edx, [ebp - 0x74]
xor eax, eax
call fcn.00402e74
mov eax, dword [ebp - 0x74]
mov edx, 0x17
call fcn.00418cb8
mov edx, dword [0x41bab0]
mov edx, dword [edx + 0xa]
mov eax, dword [0x81dbb4]
call fcn.004083c0
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x41a2fb
mov eax, 0x81dbb4
call fcn.0040332c
call fcn.00402ae8
ret
mov eax, 0x81da68
call fcn.00403410
call fcn.00402ae8
mov ebx, eax
mov eax, 0x81da68
call fcn.00403460
call fcn.00402ae8
cmp ebx, eax
jl 0x419e13
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x41a35a
mov eax, 0x81da68
call fcn.0040332c
call fcn.00402ae8
ret