Function at 0x41aa00
Capabilities:
Terminate process

Disassembly:
sub esp, 0x18
push ebx
push ebp
push esi
xor ebx, ebx
push edi
mov esi, ecx
mov dword [esp + 0x18], ebx
mov dword [esp + 0x10], ebx
mov dword [esp + 0x14], 0x496630
call fcn.0041a630
mov eax, dword [esi + 0x3c]
cmp byte [eax], 0x2a
jne 0x41aa34
inc eax
mov dword [esp + 0x10], 0x20
mov dword [esi + 0x3c], eax
lea eax, [esp + 0x14]
mov ecx, esi
push eax
call fcn.0041a740
mov ebp, dword [esi + 0x14]
cmp ebp, ebx
je 0x41aa95
mov edx, dword [esi + 0x1c]
lea ecx, [ebp + ebp*2]
lea edx, [edx + ecx*8]
mov edi, dword [esp + 0x14]
mov eax, dword [edx - 0x18]
dec ebp
sub edx, 0x18
mov bl, byte [eax]
mov cl, bl
cmp bl, byte [edi]
jne 0x41aa80
test cl, cl
je 0x41aa7c
mov bl, byte [eax + 1]
mov cl, bl
cmp bl, byte [edi + 1]
jne 0x41aa80
add eax, 2
add edi, 2
test cl, cl
jne 0x41aa5c
xor eax, eax
jmp 0x41aa85
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
je 0x41abb7
test ebp, ebp
jne 0x41aa51
mov ebx, dword [esp + 0x18]
mov ecx, esi
call fcn.0041ea70
sub esp, 0x14
mov ecx, esp
push ecx
mov dword [ecx + 4], 0x496630
mov dword [ecx + 8], eax
mov byte [ecx], 1
lea eax, [esp + 0x2c]
mov ecx, esp
push eax
call fcn.00406cc0
lea ecx, [esi + 0x10]
call fcn.0041eb10
push 0x488c00
mov ecx, esi
call fcn.0041a7f0
test eax, eax
je 0x41ac2d
mov eax, dword [esi + 0x3c]
mov edx, dword [esp + 0x10]
or edx, 4
mov cl, byte [eax]
mov dword [esp + 0x10], edx
cmp cl, 0x5d
jne 0x41ac16
inc eax
push 0x488bfc
mov ecx, esi
mov dword [esi + 0x3c], eax
call fcn.0041a7f0
test eax, eax
je 0x41abff
push 0x489cb4
mov ecx, esi
call fcn.0041a880
lea ecx, [esp + 0x1c]
mov byte [esp + 0x1c], 2
push ecx
mov ecx, esi
mov dword [esp + 0x24], 0
mov dword [esp + 0x28], 0x496630
call fcn.0041ea80
lea ecx, [esp + 0x24]
call fcn.00431b90
mov eax, dword [esi + 4]
mov cl, byte [esp + 0x10]
lea edx, [eax + eax*2]
mov eax, dword [esi + 0xc]
lea eax, [eax + edx*4 - 0xc]
mov dl, byte [eax]
or dl, cl
mov ecx, esi
mov byte [eax], dl
mov eax, dword [esi + 4]
lea edx, [eax + eax*2]
mov eax, dword [esi + 0xc]
lea edi, [eax + edx*4 - 0xc]
call fcn.0041a8b0
mov dword [edi + 4], eax
mov al, byte [edi]
or al, 8
push 0x489cb0
mov ecx, esi
mov byte [edi], al
inc ebx
call fcn.0041a7f0
test eax, eax
jne 0x41ab14
push 0x489cac
mov ecx, esi
call fcn.0041a880
push ebx
mov ecx, esi
call fcn.0041a9e0
mov eax, dword [esp + 0x14]
cmp eax, 0x496630
je 0x41ad76
push eax
call fcn.004640e0
add esp, 4
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x18
ret
test ebp, ebp
jl 0x41aa91
mov eax, dword [esp + 0x14]
lea ecx, [esp + 0x18]
push eax
push str.int_redefinition__s
push ecx
call fcn.004054a0
mov edx, dword [eax]
add esp, 0xc
mov ecx, esi
push 0
push edx
push 0xa
call fcn.00419f70
mov eax, dword [esp + 0x18]
cmp eax, 0x496630
je 0x41abf8
push eax
call fcn.004640e0
add esp, 4
push 1
call fcn.00465bed
push 0
push str.for____need_initialisation
push 0xa
mov ecx, esi
call fcn.00419f70
push 1
call fcn.00465bed
mov ecx, esi
call fcn.0041a8b0
push 0x489c74
mov ecx, esi
mov ebx, eax
call fcn.0041a880
jmp 0x41ac32
mov ebx, 1
test ebx, ebx
jle 0x41ac7f
mov edi, ebx
lea ecx, [esp + 0x1c]
mov byte [esp + 0x1c], 2
push ecx
mov ecx, esi
mov dword [esp + 0x24], 0
mov dword [esp + 0x28], 0x496630
call fcn.0041ea80
lea ecx, [esp + 0x24]
call fcn.00431b90
mov eax, dword [esi + 4]
mov cl, byte [esp + 0x10]
or cl, 0x40
lea edx, [eax + eax*2]
mov eax, dword [esi + 0xc]
lea eax, [eax + edx*4 - 0xc]
mov dl, byte [eax]
or dl, cl
dec edi
mov byte [eax], dl
jne 0x41ac38
push 0x488bfc
mov ecx, esi
call fcn.0041a7f0
test eax, eax
je 0x41ad5a
test byte [esp + 0x10], 4
je 0x41ad26
push 0x489cb4
mov ecx, esi
call fcn.0041a880
xor ebp, ebp
test ebx, ebx
jle 0x41ad01
mov edx, dword [esi + 4]
mov eax, ebp
sub eax, ebx
add eax, edx
lea edx, [eax + eax*2]
mov eax, dword [esi + 0xc]
mov cl, byte [eax + edx*4]
lea eax, [eax + edx*4]
and cl, 0xbf
mov byte [eax], cl
mov edx, dword [esi + 4]
mov eax, ebp
sub eax, ebx
add eax, edx
mov edx, dword [esi + 0xc]
inc ebp
lea ecx, [eax + eax*2]
lea edi, [edx + ecx*4]
mov ecx, esi
call fcn.0041a8b0
mov dword [edi + 4], eax
mov al, byte [edi]
or al, 8
push 0x489cb0
mov ecx, esi
mov byte [edi], al
call fcn.0041a7f0
test eax, eax
je 0x41ad18
cmp ebp, ebx
jl 0x41acb0
push 0
push str.too_many_initializers
push 0xa
mov ecx, esi
call fcn.00419f70
push 1
call fcn.00465bed
push 0x489cac
mov ecx, esi
call fcn.0041a880
jmp 0x41ad5a
mov eax, dword [esi + 4]
mov ecx, dword [esi + 0xc]
lea eax, [eax + eax*2]
lea edi, [ecx + eax*4 - 0xc]
mov ecx, esi
call fcn.0041a8b0
mov dl, byte [edi]
mov dword [edi + 4], eax
or dl, 8
mov byte [edi], dl
mov eax, dword [esi + 4]
lea edx, [eax + eax*2]
mov eax, dword [esi + 0xc]
mov cl, byte [eax + edx*4 - 0xc]
lea eax, [eax + edx*4 - 0xc]
and cl, 0xbf
mov byte [eax], cl
push ebx
mov ecx, esi
call fcn.0041a9e0
mov eax, dword [esp + 0x14]
cmp eax, 0x496630
je 0x41ad76
push eax
call fcn.004640e0
add esp, 4
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x18
ret