Function at 0x41c340
Capabilities:
Terminate process

Disassembly:
sub esp, 0x208
push ebx
push ebp
push esi
push edi
mov esi, ecx
push 0x489f28
call fcn.0041a7f0
mov edi, eax
xor ebx, ebx
cmp edi, ebx
jne 0x41c965
push 0x489f24
mov ecx, esi
call fcn.0041a7f0
test eax, eax
jne 0x41c965
push str.while
mov ecx, esi
call fcn.0041a7f0
test eax, eax
je 0x41c43f
mov ecx, 0x7f
xor eax, eax
lea edi, [esp + 0x1c]
mov dword [esp + 0x18], ebx
rep stosd dword es:[edi], eax
push 0x489e2c
mov ecx, esi
call fcn.0041a880
mov edi, dword [esi + 0x38]
mov ecx, esi
call fcn.0041c210
push 0x489df8
mov ecx, esi
call fcn.0041a880
mov eax, dword [esi + 0x38]
mov ecx, dword [esi + 0x34]
lea edx, [esp + 0x18]
mov byte [eax + ecx], 0x18
mov eax, dword [esi + 0x38]
inc eax
push edx
mov ebx, eax
add eax, 4
mov ecx, esi
mov dword [esi + 0x38], eax
call fcn.0041c340
mov eax, dword [esi + 0x38]
mov ecx, dword [esi + 0x34]
mov ebp, 4
mov byte [eax + ecx], 0x1c
mov eax, dword [esi + 0x38]
mov edx, dword [esi + 0x34]
inc eax
sub edi, eax
mov dword [esi + 0x38], eax
mov dword [eax + edx], edi
mov edi, dword [esi + 0x38]
mov ecx, dword [esi + 0x34]
add edi, ebp
mov eax, edi
mov dword [esi + 0x38], edi
sub eax, ebx
mov dword [ecx + ebx], eax
mov eax, dword [esp + 0x18]
test eax, eax
je 0x41ca02
lea ecx, [esp + 0x18]
mov edx, dword [esi + 0x38]
mov edi, dword [esi + 0x34]
sub edx, eax
add ecx, ebp
mov dword [eax + edi], edx
mov eax, dword [ecx]
test eax, eax
jne 0x41c41f
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x208
ret 4
push 0x489f18
mov ecx, esi
call fcn.0041a7f0
test eax, eax
je 0x41c504
mov ecx, 0x7f
xor eax, eax
lea edi, [esp + 0x1c]
mov dword [esp + 0x18], ebx
rep stosd dword es:[edi], eax
mov edi, dword [esi + 0x38]
lea eax, [esp + 0x18]
push eax
mov ecx, esi
call fcn.0041c340
push str.while
mov ecx, esi
call fcn.0041a880
push 0x489e2c
mov ecx, esi
call fcn.0041a880
mov ecx, esi
call fcn.0041c210
push 0x489df8
mov ecx, esi
call fcn.0041a880
mov ecx, dword [esi + 0x38]
mov edx, dword [esi + 0x34]
mov ebp, 4
mov byte [ecx + edx], 5
mov ecx, dword [esi + 0x38]
inc ecx
mov dword [esi + 0x38], ecx
mov eax, ecx
mov ecx, dword [esi + 0x34]
mov byte [eax + ecx], 0x18
mov eax, dword [esi + 0x38]
mov edx, dword [esi + 0x34]
inc eax
sub edi, eax
mov dword [esi + 0x38], eax
mov dword [eax + edx], edi
mov edx, dword [esi + 0x38]
mov eax, dword [esp + 0x18]
add edx, ebp
cmp eax, ebx
mov dword [esi + 0x38], edx
je 0x41ca02
lea ecx, [esp + 0x18]
mov edx, dword [esi + 0x38]
mov edi, dword [esi + 0x34]
sub edx, eax
add ecx, ebp
mov dword [eax + edi], edx
mov eax, dword [ecx]
cmp eax, ebx
jne 0x41c4e4
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x208
ret 4
push 0x489f14
mov ecx, esi
call fcn.0041a7f0
test eax, eax
je 0x41c63b
mov ecx, 0x7f
xor eax, eax
lea edi, [esp + 0x1c]
mov dword [esp + 0x18], ebx
rep stosd dword es:[edi], eax
push 0x489e2c
mov ecx, esi
call fcn.0041a880
mov ecx, esi
call fcn.0041c2f0
push 0x488c0c
mov ecx, esi
call fcn.0041a880
mov ebp, dword [esi + 0x38]
mov ecx, esi
call fcn.0041c210
push 0x488c0c
mov ecx, esi
call fcn.0041a880
mov eax, dword [esi + 0x38]
mov ecx, dword [esi + 0x34]
mov byte [eax + ecx], 0x18
mov eax, dword [esi + 0x38]
mov edx, dword [esi + 0x34]
inc eax
mov ebx, eax
add eax, 4
mov dword [esi + 0x38], eax
mov ecx, esi
mov byte [eax + edx], 0x1c
mov eax, dword [esi + 0x38]
lea edi, [eax + 1]
mov dword [esp + 0x10], edi
add edi, 4
mov dword [esi + 0x38], edi
call fcn.0041c2f0
push 0x489df8
mov ecx, esi
call fcn.0041a880
mov eax, dword [esi + 0x38]
mov ecx, dword [esi + 0x34]
mov byte [eax + ecx], 0x1c
mov edx, dword [esi + 0x38]
inc edx
mov ecx, dword [esp + 0x10]
mov dword [esi + 0x38], edx
mov eax, edx
mov edx, dword [esi + 0x34]
sub ebp, eax
mov dword [eax + edx], ebp
mov eax, dword [esi + 0x38]
mov edx, dword [esi + 0x34]
mov ebp, 4
add eax, ebp
mov dword [esi + 0x38], eax
sub eax, ecx
mov dword [edx + ecx], eax
lea eax, [esp + 0x18]
push eax
mov ecx, esi
call fcn.0041c340
mov ecx, dword [esi + 0x38]
mov edx, dword [esi + 0x34]
mov byte [ecx + edx], 0x1c
mov edx, dword [esi + 0x38]
mov ecx, dword [esi + 0x34]
inc edx
mov eax, edx
mov dword [esi + 0x38], edx
sub edi, eax
mov dword [eax + ecx], edi
mov edi, dword [esi + 0x38]
mov edx, dword [esi + 0x34]
add edi, ebp
mov eax, edi
mov dword [esi + 0x38], edi
sub eax, ebx
mov dword [edx + ebx], eax
mov eax, dword [esp + 0x18]
test eax, eax
je 0x41ca02
lea ecx, [esp + 0x18]
mov edx, dword [esi + 0x38]
mov edi, dword [esi + 0x34]
sub edx, eax
add ecx, ebp
mov dword [eax + edi], edx
mov eax, dword [ecx]
test eax, eax
jne 0x41c61b
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x208
ret 4
push str.break
mov ecx, esi
call fcn.0041a7f0
test eax, eax
je 0x41c6e1
push 0x488c0c
mov ecx, esi
call fcn.0041a880
mov edx, dword [esp + 0x21c]
cmp edx, ebx
jne 0x41c67c
push ebx
push str.break_without_loop
push 0xa
mov ecx, esi
call fcn.00419f70
push 1
call fcn.00465bed
mov ecx, dword [edx]
xor eax, eax
cmp ecx, ebx
mov ebp, 4
je 0x41c69c
mov ecx, edx
cmp eax, 0x80
jge 0x41c6cb
mov edi, dword [ecx + ebp]
add ecx, ebp
inc eax
cmp edi, ebx
jne 0x41c68b
mov ecx, dword [esi + 0x34]
mov edi, dword [esi + 0x38]
mov byte [ecx + edi], 0x1c
mov edi, dword [esi + 0x38]
inc edi
mov ecx, edi
mov dword [esi + 0x38], edi
mov dword [edx + eax*4], ecx
mov ecx, dword [esi + 0x38]
add ecx, ebp
mov dword [esi + 0x38], ecx
mov dword [edx + eax*4 + 4], ebx
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x208
ret 4
push ebx
push str.Too_many_break
push 0xa
mov ecx, esi
call fcn.00419f70
push 1
call fcn.00465bed
push str.goto
mov ecx, esi
call fcn.0041a7f0
test eax, eax
je 0x41c87d
lea edx, [esp + 0x10]
mov ecx, esi
push edx
mov dword [esp + 0x14], 0x496630
call fcn.0041a740
mov ebp, dword [esi + 0x14]
cmp ebp, ebx
je 0x41c762
mov ecx, dword [esi + 0x1c]
lea eax, [ebp + ebp*2]
lea edx, [ecx + eax*8]
mov edi, dword [esp + 0x10]
mov eax, dword [edx - 0x18]
dec ebp
sub edx, 0x18
mov bl, byte [eax]
mov cl, bl
cmp bl, byte [edi]
jne 0x41c749
test cl, cl
je 0x41c745
mov bl, byte [eax + 1]
mov cl, bl
cmp bl, byte [edi + 1]
jne 0x41c749
add eax, 2
add edi, 2
test cl, cl
jne 0x41c725
xor eax, eax
jmp 0x41c74e
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
je 0x41c758
test ebp, ebp
jne 0x41c71a
jmp 0x41c762
test ebp, ebp
mov eax, ebp
jge 0x41c7e4
mov eax, dword [esi + 0x38]
sub esp, 0x14
mov ecx, esp
inc eax
push ecx
lea edx, [esp + 0x28]
mov dword [ecx + 4], 0x496630
mov byte [ecx], 8
mov dword [ecx + 8], eax
mov ecx, esp
push edx
call fcn.00406cc0
lea ecx, [esi + 0x10]
call fcn.0041eb10
mov eax, dword [esi + 0x14]
dec eax
mov ecx, dword [esi + 0x38]
mov edx, dword [esi + 0x34]
lea eax, [eax + eax*2]
mov byte [ecx + edx], 0x1c
mov ebx, dword [esi + 0x38]
inc ebx
mov dword [esi + 0x38], ebx
mov edx, dword [esi + 0x1c]
mov ecx, ebx
mov eax, dword [edx + eax*8 + 0xc]
mov edx, dword [esi + 0x34]
sub eax, ecx
mov dword [ecx + edx], eax
mov edx, dword [esi + 0x38]
mov eax, dword [esp + 0x10]
add edx, 4
cmp eax, 0x496630
mov dword [esi + 0x38], edx
je 0x41ca02
push eax
call fcn.004640e0
add esp, 4
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x208
ret 4
mov edx, dword [esi + 0x1c]
lea ecx, [ebp + ebp*2]
mov cl, byte [edx + ecx*8 + 4]
cmp cl, 8
jne 0x41c834
mov eax, dword [esp + 0x10]
lea ecx, [esp + 0x14]
push eax
push str.second_use_undefined_label__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 + 0x14]
cmp eax, 0x496630
je 0x41c82d
push eax
call fcn.004640e0
add esp, 4
push 1
call fcn.00465bed
cmp cl, 7
je 0x41c791
mov eax, dword [esp + 0x10]
lea ecx, [esp + 0x14]
push eax
push str._s_is_not_label
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 + 0x14]
cmp eax, 0x496630
je 0x41c876
push eax
call fcn.004640e0
add esp, 4
push 1
call fcn.00465bed
push 0x489cb4
mov ecx, esi
call fcn.0041a7f0
test eax, eax
je 0x41c945
mov ebp, dword [esi + 0x14]
push 0x489cac
mov ecx, esi
call fcn.0041a7f0
test eax, eax
jne 0x41c8c3
mov edi, dword [esp + 0x21c]
push edi
mov ecx, esi
call fcn.0041c340
push 0x489cac
mov ecx, esi
call fcn.0041a7f0
test eax, eax
je 0x41c8ab
cmp ebp, ebx
jg 0x41c92c
mov ecx, dword [esi + 0x1c]
mov dword [esi + 0x18], ebx
cmp ecx, ebx
mov dword [esi + 0x14], ebx
je 0x41c91c
mov eax, dword [ecx - 4]
lea ebp, [ecx - 4]
lea edx, [eax + eax*2]
dec eax
lea edi, [ecx + edx*8]
js 0x41c913
lea ebx, [eax + 1]
mov eax, dword [edi - 0x10]
sub edi, 0x18
cmp eax, 0x496630
je 0x41c8fc
push eax
call fcn.004640e0
add esp, 4
mov eax, dword [edi]
cmp eax, 0x496630
je 0x41c90e
push eax
call fcn.004640e0
add esp, 4
dec ebx
jne 0x41c8e6
xor ebx, ebx
push ebp
call fcn.004640e0
add esp, 4
mov dword [esi + 0x1c], ebx
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x208
ret 4
cmp ebp, dword [esi + 0x14]
jge 0x41ca02
mov dword [esi + 0x14], ebp
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x208
ret 4
mov ecx, esi
call fcn.0041c2f0
push 0x488c0c
mov ecx, esi
call fcn.0041a880
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x208
ret 4
push 0x489e2c
mov ecx, esi
call fcn.0041a880
mov ecx, esi
call fcn.0041c210
push 0x489df8
mov ecx, esi
call fcn.0041a880
mov ecx, dword [esi + 0x38]
mov edx, dword [esi + 0x34]
mov eax, edi
mov ebx, dword [esp + 0x21c]
neg eax
sbb al, al
push ebx
and al, 5
add al, 0x18
mov byte [ecx + edx], al
mov eax, dword [esi + 0x38]
mov ecx, esi
lea edi, [eax + 1]
lea eax, [edi + 4]
mov dword [esi + 0x38], eax
call fcn.0041c340
mov ecx, dword [esi + 0x38]
mov edx, dword [esi + 0x34]
sub ecx, edi
push 0x489e9c
mov dword [edx + edi], ecx
mov ecx, esi
call fcn.0041a7f0
test eax, eax
je 0x41ca02
mov eax, dword [esi + 0x34]
push ebx
add eax, edi
mov edx, dword [eax]
add edx, 5
mov dword [eax], edx
mov ecx, dword [esi + 0x38]
mov edx, dword [esi + 0x34]
mov byte [ecx + edx], 0x1c
mov eax, dword [esi + 0x38]
mov ecx, esi
lea edi, [eax + 1]
lea eax, [edi + 4]
mov dword [esi + 0x38], eax
call fcn.0041c340
mov ecx, dword [esi + 0x38]
mov edx, dword [esi + 0x34]
sub ecx, edi
mov dword [edx + edi], ecx
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x208
ret 4