Function at 0x40f770
Capabilities:
Terminate process

Disassembly:
mov eax, dword [0x439260]
mov byte [0x439760], 1
sub esp, 0x24
mov ecx, dword [eax*4 + 0x438d20]
xor eax, eax
mov dword [0x4388c8], ecx
push ebx
movzx dx, byte [ecx + 2]
mov word [0x43408c], dx
mov al, byte [ecx]
push esi
xor esi, esi
cmp eax, 0x22
push edi
ja case.0x40f7b2.4
xor edx, edx
mov dl, byte [eax + 0x40fa20]
jmp dword [edx*4 + 0x40fa0c]
mov eax, dword [0x439260]
add ecx, 9
inc eax
push 1
mov dword [0x439260], eax
lea eax, [esp + 0x10]
push eax
mov dword [0x4388c8], ecx
call fcn.0040bae0
mov al, byte [esp + 0x28]
add esp, 8
test al, al
je 0x40f7ee
mov word [esp + 0x18], si
mov word [esp + 0x16], si
mov ecx, dword [esp + 0x16]
mov edx, dword [esp + 0x18]
mov eax, dword [esp + 0x34]
and ecx, 0xffff
and edx, 0xffff
mov dword [0x42d6f8], esi
add ecx, edx
push ecx
push eax
call fcn.0040f640
mov esi, dword [0x42d6f8]
add esp, 8
cmp esi, 0xfa
jle case.0x40f7b2.2
push esi
push str._FATAL:_getir___length__d_n
call fcn.0041ea1f
add esp, 8
push 3
call fcn.0041e7dd
mov ecx, dword [esp + 0x34]
xor bl, bl
mov byte [0x439760], bl
mov dl, 1
mov ax, word [0x43408c]
xor edi, edi
inc ax
mov di, ax
mov word [0x43408c], ax
mov al, byte [edi + 0x4347c0]
mov byte [0x438ae9], al
mov byte [esi + ecx], al
mov al, byte [0x438ae9]
cmp al, 0x3c
jne 0x40f87b
inc dl
jmp 0x40f887
cmp al, 0x3e
jne 0x40f883
dec dl
jmp 0x40f887
cmp al, 0xa
je 0x40f88e
test dl, dl
je 0x40f894
inc esi
jmp 0x40f84d
test dl, dl
je 0x40f894
mov bl, 1
mov eax, dword [0x4388c8]
mov cx, word [0x43408c]
movzx dx, byte [eax + 2]
cmp dx, cx
ja 0x40f81e
cmp byte [eax], 0x1e
je 0x40f8d7
mov edi, dword [0x439260]
add eax, 9
inc edi
mov dword [0x4388c8], eax
mov dword [0x439260], edi
movzx dx, byte [eax + 2]
cmp dx, cx
jbe 0x40f8ae
jmp 0x40f81e
test bl, bl
je 0x40f81e
push 9
push eax
call fcn.00419fb0
add esp, 8
jmp 0x40f81e
mov al, byte [ecx + 1]
cmp al, 0x7e
je case.0x40f7b2.4
cmp al, 0x21
jne 0x40f942
cmp byte [0x438ae9], 0xa
je case.0x40f7b2.2
mov edx, dword [esp + 0x34]
xor eax, eax
mov al, byte [ecx + 2]
mov esi, 1
mov cl, byte [eax + 0x4347c1]
mov byte [edx], cl
mov ecx, dword [0x439260]
mov eax, dword [0x4388c8]
add ecx, 2
add eax, 0x12
mov dword [0x439260], ecx
mov dword [0x4388c8], eax
mov eax, esi
pop edi
pop esi
pop ebx
add esp, 0x24
ret
mov edx, dword [esp + 0x34]
xor eax, eax
mov al, byte [ecx + 2]
push 9
mov esi, 1
mov cl, byte [eax + 0x4347c0]
mov byte [edx], cl
mov eax, dword [0x4388c8]
push eax
call fcn.00419fb0
mov ecx, dword [0x4388c8]
mov eax, dword [0x439260]
add esp, 8
add ecx, 9
inc eax
mov dword [0x4388c8], ecx
mov dword [0x439260], eax
mov eax, esi
pop edi
pop esi
pop ebx
add esp, 0x24
ret
mov ebx, dword [esp + 0x34]
mov edx, dword [0x439260]
mov eax, dword [0x438d04]
cmp edx, eax
jge 0x40f81e
mov al, byte [ecx]
cmp al, 0x1a
je case.0x40f7b2.2
cmp al, 0x1d
jbe 0x40f9b0
cmp al, 0x1f
jbe case.0x40f7b2.2
movzx di, byte [ecx + 2]
mov eax, dword [0x439260]
add ecx, 9
inc eax
xor edx, edx
mov dword [0x439260], eax
xor eax, eax
mov word [0x43408c], di
mov dword [0x4388c8], ecx
mov dl, byte [ecx + 2]
mov ax, di
cmp eax, edx
jge 0x40f98f
mov al, byte [eax + 0x4347c0]
xor ecx, ecx
mov byte [esi + ebx], al
mov ax, word [0x43408c]
inc esi
inc ax
mov cx, ax
mov word [0x43408c], ax
mov eax, ecx
cmp eax, edx
jl 0x40f9de
mov ecx, dword [0x4388c8]
jmp 0x40f98f