Function at 0x405512
Capabilities:
Terminate process

Disassembly:
xor eax, eax
cmp dword [0x416e0c], eax
je 0x4050a0
cmp dword [0x41872c], eax
mov dword [0x416e0c], eax
jne 0x40505d
mov dword [0x41872c], 1
mov ecx, dword [0x418730]
cmp ecx, eax
jne 0x405072
mov ecx, 0x417010
mov dword [0x418730], ecx
cmp dword [0x418734], eax
jne 0x405084
mov dword [0x418734], 0x417030
cmp dword [0x418724], eax
jne 0x40509b
mov edx, 0x4000
call fcn.0040593c
mov dword [0x418724], eax
call fcn.00405910
push ebx
push ebp
push esi
push edi
mov ecx, dword [0x418728]
mov al, byte [0x4183f5]
mov edi, ecx
mov byte [ecx], al
mov esi, dword [0x41872c]
mov ebx, edi
movzx eax, byte [edi]
mov dl, byte [eax*4 + 0x4135b0]
lea eax, [esi + esi]
cmp word [eax + 0x413568], 0
je 0x4050de
mov dword [0x418720], esi
mov dword [0x418704], edi
movsx ebp, word [eax + 0x4139cc]
xor ecx, ecx
mov cl, dl
add ebp, ecx
movsx ebp, word [ebp*2 + 0x413af8]
cmp ebp, esi
je 0x40510f
movsx esi, word [eax + 0x413a24]
cmp esi, 0x23
jl 0x40510a
mov dl, byte [ecx*4 + 0x4139b0]
lea eax, [esi + esi]
jmp 0x4050de
movsx eax, word [esi*2 + 0x4139cc]
xor ecx, ecx
mov cl, dl
add eax, ecx
movsx esi, word [eax*2 + 0x413a7c]
inc edi
cmp word [esi*2 + 0x4139cc], 0x36
jne 0x4050bb
movsx eax, word [esi*2 + 0x413568]
test eax, eax
jne 0x405150
mov eax, dword [0x418720]
mov edi, dword [0x418704]
movsx eax, word [eax*2 + 0x413568]
mov ecx, edi
sub ecx, ebx
mov dword [0x418708], ebx
mov dword [0x4183e0], ecx
mov cl, byte [edi]
mov byte [0x4183f5], cl
and byte [edi], 0
mov esi, dword [0x418708]
mov ecx, edi
mov dword [0x418728], ecx
cmp eax, 0xd
ja case.default.0x405182
jmp dword [eax*4 + 0x4054da]
mov al, byte [0x4183f5]
mov ebp, edi
sub ebp, esi
mov byte [edi], al
mov eax, dword [0x418724]
xor esi, esi
dec ebp
cmp dword [eax + 0x24], esi
jne 0x4051c3
mov ecx, dword [eax + 0x10]
mov dword [0x418700], ecx
mov ecx, dword [0x418730]
mov dword [eax], ecx
mov eax, dword [0x418724]
mov dword [eax + 0x24], 1
mov eax, dword [0x418724]
mov eax, dword [eax + 4]
add eax, dword [0x418700]
cmp dword [0x418728], eax
jbe 0x405259
call 0x405512
sub eax, esi
je 0x40529b
dec eax
jne 0x40520f
mov eax, dword [0x41872c]
dec eax
cdq
mov dword [0x4183ec], esi
mov esi, dword [0x418708]
sub eax, edx
mov ecx, esi
sar eax, 1
mov dword [0x418728], ecx
add eax, 0xc
jmp 0x405179
dec eax
jne 0x4050a4
mov eax, dword [0x418724]
mov eax, dword [eax + 4]
add eax, dword [0x418700]
mov dword [0x418728], eax
call fcn.00405763
mov edi, dword [0x418728]
mov ebx, dword [0x418708]
mov esi, eax
jmp 0x405131
mov al, byte [0x4183f5]
mov byte [edi], al
mov edi, dword [0x418704]
mov esi, dword [0x418720]
jmp 0x405131
mov eax, dword [0x418708]
add eax, ebp
mov dword [0x418728], eax
call fcn.00405763
mov esi, eax
mov ecx, esi
call fcn.004057f9
test eax, eax
mov ebx, dword [0x418708]
jne 0x405288
mov edi, dword [0x418728]
jmp 0x405131
inc dword [0x418728]
mov edi, dword [0x418728]
mov esi, eax
jmp 0x4050bb
mov eax, dword [0x418708]
add eax, ebp
mov dword [0x418728], eax
call fcn.00405763
mov edi, dword [0x418728]
mov ebx, dword [0x418708]
mov esi, eax
jmp 0x4050bb
mov al, byte [esi + 1]
cmp al, byte [0x4183f4]
jne case.0x405182.6
mov edx, dword [0x418724]
mov eax, ecx
mov dword [0x41870c], 1
sub eax, dword [edx + 4]
sub eax, dword [0x4183e0]
cmp dword [0x4183f0], 0
mov dword [0x41871c], eax
jle 0x40546b
mov dword [0x41872c], 3
jmp case.0x405182.6
mov dl, byte [esi + 1]
push 1
pop eax
test dl, dl
je case.0x405182.6
cmp dl, byte [0x4183f4]
je 0x40547a
mov dl, byte [esi + eax + 1]
inc eax
jmp 0x405310
mov eax, dword [0x4183e4]
lea eax, [eax + eax*2]
inc esi
push esi
lea ecx, [eax*4 + 0x4183f8]
call fcn.004030a6
mov eax, dword [0x4183e4]
lea eax, [eax + eax*2]
push 1
lea ecx, [eax*4 + 0x4183f8]
call fcn.004032bd
jmp 0x40536e
mov eax, dword [0x4183e4]
lea eax, [eax + eax*2]
push esi
lea ecx, [eax*4 + 0x4183f8]
call fcn.004030a6
inc dword [0x4183e4]
mov eax, dword [0x4183e4]
cmp eax, dword [0x4183f0]
je 0x4054a4
jmp 0x4050a4
mov eax, dword [0x4186fc]
lea eax, [eax + eax*2]
inc esi
push esi
lea ecx, [eax*4 + 0x4183f8]
call fcn.004030a6
mov eax, dword [0x4186fc]
push 1
pop esi
lea eax, [eax + eax*2]
push esi
lea ecx, [eax*4 + 0x4183f8]
call fcn.004032bd
mov ecx, dword [0x418728]
mov eax, dword [0x418724]
mov edx, ecx
sub edx, dword [0x4183e0]
sub edx, dword [eax + 4]
mov dword [0x41871c], edx
mov edx, ecx
sub edx, dword [eax + 4]
mov eax, dword [0x4186fc]
inc dword [0x4186fc]
cmp eax, dword [0x4186f8]
mov dword [0x4183e8], edx
je 0x4054b4
jmp case.0x405182.6
mov eax, dword [0x4186fc]
lea eax, [eax + eax*2]
push esi
lea ecx, [eax*4 + 0x4183f8]
call fcn.004030a6
mov ecx, dword [0x418728]
mov eax, dword [0x418724]
mov edx, ecx
sub edx, dword [0x4183e0]
sub edx, dword [eax + 4]
mov dword [0x41871c], edx
mov edx, ecx
sub edx, dword [eax + 4]
mov eax, dword [0x4186fc]
inc dword [0x4186fc]
cmp eax, dword [0x4186f8]
mov dword [0x4183e8], edx
je 0x405498
jmp case.0x405182.6
push dword [0x418734]
push 1
push dword [0x4183e0]
push esi
call fcn.004078b4
add esp, 0x10
jmp 0x4050a4
add eax, 2
mov dword [0x4183e8], eax
pop edi
pop esi
pop ebp
xor eax, eax
pop ebx
ret
mov edx, dword [0x418724]
sub ecx, dword [edx + 4]
sub ecx, dword [0x4183e0]
add ecx, eax
mov dword [0x41871c], ecx
inc ecx
mov dword [0x4183e8], ecx
mov dword [0x41870c], 1
jmp case.0x405182.3
mov eax, dword [0x418728]
mov ecx, dword [0x418724]
sub eax, dword [ecx + 4]
jmp 0x40546e
mov dword [0x41870c], esi
jmp case.0x405182.3
push str.fatal_flex_scanner_internal_error__no_action_found
push 0x416e10
push 0x417050
call fcn.00408599
add esp, 0xc
push 2
call fcn.004084a6
inc ecx
push edx
inc eax
add byte [edi + 0xa004052], bh
push ebx
inc eax
add byte [ebx + 0x54], dh
inc eax
add byte [ebx], ch
push ebx
inc eax
add byte [ecx + 0x53], bl
inc eax
add byte [edx - 0x75ffbfb0], ch
push ebx
inc eax
add bl, bh
push ebx
inc eax
add byte [edx + 0x4f004050], ch
push esp
inc eax
add byte [ecx + 0x73004051], cl
push esp
inc eax
add byte [ebx + 0x54], dh
inc eax
add byte [ebx + 0x4187240d], cl
add byte [ecx + 0x418700], ah
mov edx, dword [0x418708]
push ebx
push esi
mov esi, dword [ecx + 4]
push edi
lea edi, [esi + eax + 1]
mov eax, dword [0x418728]
cmp eax, edi
jbe 0x405554
push str.fatal_flex_scanner_internal_error__end_of_buffer_missed
push 0x416e10
push 0x417050
call fcn.00408599
add esp, 0xc
push 2
call fcn.004084a6
cmp dword [ecx + 0x20], 0
jne 0x40556c
sub eax, edx
xor ecx, ecx
cmp eax, 1
setne cl
inc ecx
mov eax, ecx
jmp 0x40575f
mov edi, eax
sub edi, edx
dec edi
test edi, edi
jle 0x40558b
mov eax, edi
mov cl, byte [edx]
mov byte [esi], cl
inc esi
inc edx
dec eax
jne 0x405577
mov ecx, dword [0x418724]
mov eax, dword [0x418728]
cmp dword [ecx + 0x24], 2
jne 0x4055a1
and dword [0x418700], 0
and dword [ecx + 0x10], 0
jmp 0x4056fc
mov esi, dword [ecx + 0xc]
sub esi, edi
dec esi
test esi, esi
jg 0x405618
sub eax, dword [ecx + 4]
cmp dword [ecx + 0x14], 0
lea esi, [ecx + 4]
mov ebx, eax
je 0x4055e1
mov eax, dword [ecx + 0xc]
lea edx, [eax + eax]
test edx, edx
jg 0x4055ca
mov edx, eax
shr edx, 3
add edx, eax
mov dword [ecx + 0xc], edx
mov eax, dword [ecx + 0xc]
mov ecx, dword [esi]
inc eax
inc eax
push eax
push ecx
call fcn.00405e5b
pop ecx
pop ecx
mov dword [esi], eax
jmp 0x4055e4
and dword [esi], 0
mov esi, dword [esi]
test esi, esi
je 0x4055fa
mov ecx, dword [0x418724]
lea eax, [esi + ebx]
mov dword [0x418728], eax
jmp 0x4055a1
push str.fatal_error___scanner_input_buffer_overflow
push 0x416e10
push 0x417050
call fcn.00408599
add esp, 0xc
push 2
call fcn.004084a6
mov eax, 0x2000
cmp esi, eax
jle 0x405623
mov esi, eax
xor ebx, ebx
cmp dword [ecx + 0x18], ebx
je 0x4056a9
test esi, esi
jle 0x4056a0
push dword [0x418730]
call fcn.0040810f
cmp eax, 0xffffffff
pop ecx
je 0x405657
cmp eax, 0xa
je 0x40565c
mov ecx, dword [0x418724]
mov ecx, dword [ecx + 4]
add ecx, ebx
inc ebx
cmp ebx, esi
mov byte [ecx + edi], al
jl 0x40562e
cmp eax, 0xa
jne 0x40566c
mov ecx, dword [0x418724]
mov ecx, dword [ecx + 4]
add ecx, ebx
mov byte [ecx + edi], 0xa
inc ebx
cmp eax, 0xffffffff
jne 0x40569a
mov eax, dword [0x418730]
test byte [eax + 0xc], 0x20
je 0x40569a
push str.input_in_flex_scanner_failed
push 0x416e10
push 0x417050
call fcn.00408599
add esp, 0xc
push 2
call fcn.004084a6
mov ecx, dword [0x418724]
mov eax, ebx
mov dword [0x418700], eax
jmp 0x4056f9
push dword [0x418730]
mov eax, dword [ecx + 4]
push esi
add eax, edi
push 1
push eax
call fcn.0040779d
add esp, 0x10
cmp eax, ebx
mov dword [0x418700], eax
jne 0x4056f3
mov ecx, dword [0x418730]
test byte [ecx + 0xc], 0x20
je 0x4056f3
push str.input_in_flex_scanner_failed
push 0x416e10
push 0x417050
call fcn.00408599
add esp, 0xc
push 2
call fcn.004084a6
mov ecx, dword [0x418724]
mov dword [ecx + 0x10], eax
xor esi, esi
cmp dword [0x418700], esi
jne 0x405725
cmp edi, esi
jne 0x40571a
mov ecx, dword [0x418730]
push 1
pop esi
call fcn.00405885
jmp 0x405725
mov eax, dword [0x418724]
push 2
pop esi
mov dword [eax + 0x24], esi
add dword [0x418700], edi
mov eax, dword [0x418724]
mov eax, dword [eax + 4]
mov ecx, dword [0x418700]
and byte [eax + ecx], 0
mov eax, dword [0x418724]
mov eax, dword [eax + 4]
mov ecx, dword [0x418700]
and byte [eax + ecx + 1], 0
mov eax, dword [0x418724]
mov eax, dword [eax + 4]
mov dword [0x418708], eax
mov eax, esi
pop edi
pop esi
pop ebx
ret
mov ecx, 0x418710
mov dword [0x41872c], 1
call fcn.00403384
mov ecx, eax
call fcn.00405a6c
jmp 0x40503c