Function at 0x41a040
Capabilities:
Terminate process

Disassembly:
mov eax, 0x1010
call fcn.00464610
push ebx
push ebp
push esi
mov esi, ecx
xor eax, eax
push edi
mov ecx, dword [esi + 0x3c]
mov edx, dword [esi + 0x40]
cmp ecx, edx
mov dword [esp + 0x10], esi
mov dword [esp + 0x1c], eax
mov dword [esp + 0x14], eax
jae 0x41a5ca
jmp 0x41a072
mov eax, dword [esp + 0x1c]
xor ecx, ecx
cmp eax, ecx
jne 0x41a586
mov edx, dword [esi + 0x3c]
movsx eax, byte [edx]
push eax
call fcn.004658b8
add esp, 4
test eax, eax
jne 0x41a09f
mov ecx, dword [esi + 0x3c]
cmp byte [ecx], 0x5f
jne 0x41a1e0
mov esi, dword [esp + 0x10]
mov eax, dword [esi + 0x54]
test eax, eax
jne 0x41a1e0
mov ebx, dword [esp + 0x10]
xor esi, esi
mov dword [esp + 0x18], esi
mov edx, dword [ebx + 0x3c]
movsx eax, byte [edx + esi]
push eax
call fcn.00465936
add esp, 4
test eax, eax
jne 0x41a0d1
mov ecx, dword [ebx + 0x3c]
cmp byte [ecx + esi], 0x5f
jne 0x41a0ef
cmp esi, 0xfff
jge 0x41a5f0
mov edx, dword [ebx + 0x3c]
inc esi
mov dword [esp + 0x18], esi
mov al, byte [edx + esi - 1]
mov byte [esp + esi + 0x1f], al
jmp 0x41a0b4
lea ecx, [esp + 0x20]
mov byte [esp + esi + 0x20], 0
test ecx, ecx
je 0x41a13c
mov al, byte [esp + 0x20]
test al, al
je 0x41a13c
lea edi, [esp + 0x20]
or ecx, 0xffffffff
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
dec ecx
mov ebp, ecx
lea edx, [ebp + 1]
push edx
call fcn.004640eb
mov ecx, ebp
lea esi, [esp + 0x24]
mov edx, ecx
mov edi, eax
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
add esp, 4
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov byte [eax + ebp], 0
jmp 0x41a141
mov eax, 0x496630
mov edi, dword [ebx + 0x24]
test edi, edi
je 0x41a18c
mov ecx, dword [ebx + 0x2c]
lea ebp, [ecx + edi*8]
mov ecx, dword [ebp - 8]
dec edi
sub ebp, 8
mov esi, eax
mov bl, byte [ecx]
mov dl, bl
cmp bl, byte [esi]
jne 0x41a17b
test dl, dl
je 0x41a177
mov bl, byte [ecx + 1]
mov dl, bl
cmp bl, byte [esi + 1]
jne 0x41a17b
add ecx, 2
add esi, 2
test dl, dl
jne 0x41a157
xor ecx, ecx
jmp 0x41a180
sbb ecx, ecx
sbb ecx, 0xffffffff
test ecx, ecx
je 0x41a29e
test edi, edi
jne 0x41a14e
or esi, 0xffffffff
test esi, esi
setge bl
cmp eax, 0x496630
je 0x41a1a4
push eax
call fcn.004640e0
add esp, 4
test bl, bl
je 0x41a1e0
mov edx, dword [esp + 0x10]
or ecx, 0xffffffff
mov eax, dword [edx + 0x2c]
mov edi, dword [eax + esi*8 + 4]
xor eax, eax
repne scasb al, byte es:[edi]
mov eax, dword [esp + 0x18]
mov edi, dword [edx + 0x3c]
not ecx
dec ecx
sub eax, ecx
add edi, eax
mov eax, ecx
mov dword [edx + 0x3c], edi
mov edx, dword [edx + 0x2c]
shr ecx, 2
mov esi, dword [edx + esi*8 + 4]
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov ebx, dword [esp + 0x10]
mov eax, dword [ebx + 0x3c]
mov cl, byte [eax]
cmp cl, 0x23
jne 0x41a525
cmp byte [eax + 1], 0x69
jne 0x41a32b
cmp byte [eax + 2], 0x66
jne 0x41a32b
cmp byte [eax + 3], 0x64
jne 0x41a32b
cmp byte [eax + 4], 0x65
jne 0x41a32b
cmp byte [eax + 5], 0x66
jne 0x41a32b
mov ecx, dword [ebx + 0x4c]
add eax, 6
mov dword [ebx + 0x3c], eax
mov eax, dword [esp + 0x14]
inc ecx
test eax, eax
mov dword [ebx + 0x4c], ecx
jne 0x41a525
lea ecx, [esp + 0x18]
mov dword [esp + 0x18], 0x496630
push ecx
mov ecx, ebx
mov dword [ebx + 0x54], 1
call fcn.0041a740
mov dword [ebx + 0x54], 0
mov edi, dword [ebx + 0x14]
test edi, edi
je 0x41a2b8
mov eax, dword [ebx + 0x1c]
lea edx, [edi + edi*2]
lea ebp, [eax + edx*8]
mov esi, dword [esp + 0x18]
mov eax, dword [ebp - 0x18]
dec edi
sub ebp, 0x18
mov dl, byte [eax]
mov cl, dl
cmp dl, byte [esi]
jne 0x41a2a5
test cl, cl
je 0x41a29a
mov dl, byte [eax + 1]
mov cl, dl
cmp dl, byte [esi + 1]
jne 0x41a2a5
add eax, 2
add esi, 2
test cl, cl
jne 0x41a27a
xor eax, eax
jmp 0x41a2aa
mov esi, edi
jmp 0x41a18f
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
je 0x41a2b4
test edi, edi
jne 0x41a26f
jmp 0x41a2b8
test edi, edi
jge 0x41a30e
mov edi, dword [ebx + 0x24]
test edi, edi
je 0x41a307
mov eax, dword [ebx + 0x2c]
lea ebp, [eax + edi*8]
mov esi, dword [esp + 0x18]
mov eax, dword [ebp - 8]
dec edi
sub ebp, 8
mov dl, byte [eax]
mov cl, dl
cmp dl, byte [esi]
jne 0x41a2f4
test cl, cl
je 0x41a2f0
mov dl, byte [eax + 1]
mov cl, dl
cmp dl, byte [esi + 1]
jne 0x41a2f4
add eax, 2
add esi, 2
test cl, cl
jne 0x41a2d0
xor eax, eax
jmp 0x41a2f9
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
je 0x41a303
test edi, edi
jne 0x41a2c5
jmp 0x41a307
test edi, edi
jge 0x41a30e
mov eax, dword [ebx + 0x4c]
mov dword [esp + 0x14], eax
mov eax, dword [esp + 0x18]
cmp eax, 0x496630
je 0x41a525
push eax
call fcn.004640e0
add esp, 4
jmp 0x41a525
cmp cl, 0x23
jne 0x41a525
cmp byte [eax + 1], 0x69
jne 0x41a479
cmp byte [eax + 2], 0x66
jne 0x41a479
cmp byte [eax + 3], 0x6e
jne 0x41a479
cmp byte [eax + 4], 0x64
jne 0x41a479
cmp byte [eax + 5], 0x65
jne 0x41a479
cmp byte [eax + 6], 0x66
jne 0x41a479
mov ecx, dword [ebx + 0x4c]
add eax, 7
mov dword [ebx + 0x3c], eax
mov eax, dword [esp + 0x14]
inc ecx
test eax, eax
mov dword [ebx + 0x4c], ecx
jne 0x41a525
lea ecx, [esp + 0x18]
mov dword [esp + 0x18], 0x496630
push ecx
mov ecx, ebx
mov dword [ebx + 0x54], 1
call fcn.0041a740
mov edx, dword [esp + 0x18]
mov dword [ebx + 0x54], 0
mov edi, dword [ebx + 0x14]
test edi, edi
je 0x41a403
mov ecx, dword [ebx + 0x1c]
lea eax, [edi + edi*2]
lea ebp, [ecx + eax*8]
mov eax, dword [ebp - 0x18]
dec edi
sub ebp, 0x18
mov esi, edx
mov bl, byte [eax]
mov cl, bl
cmp bl, byte [esi]
jne 0x41a3ec
test cl, cl
je 0x41a3e8
mov bl, byte [eax + 1]
mov cl, bl
cmp bl, byte [esi + 1]
jne 0x41a3ec
add eax, 2
add esi, 2
test cl, cl
jne 0x41a3c8
xor eax, eax
jmp 0x41a3f1
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
je 0x41a3fb
test edi, edi
jne 0x41a3bf
jmp 0x41a3ff
test edi, edi
jge 0x41a46c
mov ebx, dword [esp + 0x10]
mov edi, dword [ebx + 0x24]
test edi, edi
je 0x41a44e
mov eax, dword [ebx + 0x2c]
lea ebp, [eax + edi*8]
mov eax, dword [ebp - 8]
dec edi
sub ebp, 8
mov esi, edx
mov bl, byte [eax]
mov cl, bl
cmp bl, byte [esi]
jne 0x41a43d
test cl, cl
je 0x41a439
mov bl, byte [eax + 1]
mov cl, bl
cmp bl, byte [esi + 1]
jne 0x41a43d
add eax, 2
add esi, 2
test cl, cl
jne 0x41a419
xor eax, eax
jmp 0x41a442
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
je 0x41a468
test edi, edi
jne 0x41a410
mov ebx, dword [esp + 0x10]
cmp edx, 0x496630
je 0x41a525
push edx
call fcn.004640e0
add esp, 4
jmp 0x41a525
test edi, edi
jl 0x41a44a
mov ebx, dword [esp + 0x10]
mov ecx, dword [ebx + 0x4c]
mov dword [esp + 0x14], ecx
jmp 0x41a44e
cmp cl, 0x23
jne 0x41a525
cmp byte [eax + 1], 0x65
jne 0x41a4ca
cmp byte [eax + 2], 0x6e
jne 0x41a4ca
cmp byte [eax + 3], 0x64
jne 0x41a4ca
cmp byte [eax + 4], 0x69
jne 0x41a4ca
cmp byte [eax + 5], 0x66
jne 0x41a4ca
mov ecx, dword [esp + 0x14]
add eax, 6
mov dword [ebx + 0x3c], eax
mov eax, dword [ebx + 0x4c]
cmp ecx, eax
jne 0x41a4b9
mov dword [esp + 0x14], 0
dec eax
test eax, eax
mov dword [ebx + 0x4c], eax
jge 0x41a525
push 0
push str.endif_without_ifdef
jmp 0x41a51c
cmp cl, 0x23
jne 0x41a525
cmp byte [eax + 1], 0x65
jne 0x41a525
cmp byte [eax + 2], 0x6c
jne 0x41a525
cmp byte [eax + 3], 0x73
jne 0x41a525
cmp byte [eax + 4], 0x65
jne 0x41a525
mov ecx, dword [esp + 0x14]
add eax, 5
test ecx, ecx
mov dword [ebx + 0x3c], eax
jne 0x41a502
mov eax, dword [ebx + 0x4c]
test eax, eax
jle 0x41a502
mov dword [esp + 0x14], eax
jmp 0x41a511
mov eax, dword [ebx + 0x4c]
cmp ecx, eax
jne 0x41a511
mov dword [esp + 0x14], 0
test eax, eax
jg 0x41a525
push 0
push str.else_without_ifdef
push 0xa
mov ecx, ebx
call fcn.00419f70
mov eax, dword [ebx + 0x3c]
mov cl, byte [eax]
cmp cl, 0x2f
jne 0x41a553
cmp byte [eax + 1], cl
jne 0x41a53e
mov dword [esp + 0x1c], 1
jmp 0x41a5ac
cmp cl, 0x2f
jne 0x41a553
cmp byte [eax + 1], 0x2a
jne 0x41a553
mov dword [esp + 0x1c], 2
jmp 0x41a5ac
cmp cl, 0x3f
je 0x41a607
mov eax, dword [esp + 0x14]
test eax, eax
jne 0x41a5ac
movsx edx, cl
push edx
call fcn.0046590e
add esp, 4
test eax, eax
jne 0x41a5ac
mov eax, dword [esp + 0x10]
mov ecx, dword [eax + 0x3c]
cmp byte [ecx], 0
jne 0x41a61e
jmp 0x41a5ac
cmp eax, 1
jne 0x41a595
mov edx, dword [esi + 0x3c]
cmp byte [edx], 0xa
jne 0x41a5ac
jmp 0x41a5a8
cmp eax, 2
jne 0x41a5ac
mov eax, dword [esi + 0x3c]
cmp byte [eax], 0x2f
jne 0x41a5ac
cmp byte [eax - 1], 0x2a
jne 0x41a5ac
mov dword [esp + 0x1c], ecx
mov esi, dword [esp + 0x10]
mov eax, dword [esi + 0x3c]
mov cl, byte [eax]
inc eax
cmp cl, 0xa
mov dword [esi + 0x3c], eax
jne 0x41a5c1
inc dword [esi + 0x48]
cmp eax, dword [esi + 0x40]
jb 0x41a06e
mov eax, dword [esi + 0x4c]
test eax, eax
jle 0x41a5e0
push eax
push str.ifdef_without_endif
push 0xa
mov ecx, esi
call fcn.00419f70
pop edi
pop esi
pop ebp
mov eax, 1
pop ebx
add esp, 0x1010
ret
push 0
push str.Very_long_name
push 0xa
mov ecx, ebx
call fcn.00419f70
push 1
call fcn.00465bed
push 0
push str._:_not_supported_in_this_version
push 0xa
mov ecx, ebx
call fcn.00419f70
push 1
call fcn.00465bed
pop edi
pop esi
pop ebp
xor eax, eax
pop ebx
add esp, 0x1010
ret