Function at 0x42a430
Capabilities:
Delete file
Terminate process

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x48
mov eax, dword [section..data]
xor eax, ebp
mov dword [ebp - 8], eax
mov eax, dword [ebp + 8]
push ebx
push esi
mov esi, ecx
mov ecx, dword [eax*4 + 0x448650]
push edi
mov dword [ebp - 0x30], eax
mov dword [ebp - 0x44], ecx
cmp eax, 3
ja case.default.0x42a45a
jmp dword [eax*4 + 0x42aa54]
mov edx, dword [str.level_1]
mov eax, dword [0x43cbd0]
mov dword [ebp - 0x28], edx
mov dword [ebp - 0x24], eax
jmp case.default.0x42a45a
mov ecx, dword [str.level_2]
mov edx, dword [0x43cbd8]
mov dword [ebp - 0x28], ecx
mov dword [ebp - 0x24], edx
jmp case.default.0x42a45a
mov eax, dword [str.row_level]
mov dx, word [0x440aa8]
mov ecx, dword [0x440aa4]
mov dword [ebp - 0x28], eax
mov word [ebp - 0x20], dx
jmp 0x42a4c2
mov eax, dword [str.column_level]
mov edx, dword [0x440ab4]
mov ecx, dword [0x440ab0]
mov dword [ebp - 0x28], eax
mov al, byte [0x440ab8]
mov dword [ebp - 0x20], edx
mov byte [ebp - 0x1c], al
mov dword [ebp - 0x24], ecx
mov ecx, esi
call fcn.00407660
test eax, eax
je 0x42a521
lea ecx, [ebp - 0x28]
push ecx
push str.__s_is_an_empty_file_n
call dword [sym.imp.MSVCR100.dll_printf]
call fcn.00406fe0
mov edx, dword [0x4596c4]
mov esi, dword [sym.imp.MSVCR100.dll_remove]
push edx
mov dword [0x443e58], 1
call esi
mov eax, dword [0x448bc8]
add esp, 0xc
push eax
call esi
add esp, 4
cmp dword [0x443e58], 0
je 0x42a519
call fcn.00406b90
push 1
call dword [sym.imp.MSVCR100.dll_exit]
movsx ecx, word [esi + 0xa]
mov edx, dword [esi + 0x24]
mov dword [ebp - 0x3c], ecx
mov ecx, dword [esi + 4]
xor eax, eax
mov dword [ebp - 0x34], edx
mov dword [ebp - 0x40], ecx
cmp dword [esi + 0xc], eax
jle 0x42a54d
jmp 0x42a540
mov dword [ecx + eax*4], 0xffffffff
inc eax
cmp eax, dword [esi + 0xc]
jl 0x42a540
mov edi, dword [sym.imp.MSVCR100.dll_printf]
lea eax, [ebp - 0x28]
push eax
push str._n_The_available__s_variables_are:_n
call edi
mov ebx, 1
add esp, 8
cmp dword [ebp - 0x3c], ebx
jl 0x42a5e8
mov ecx, dword [ebp - 0x34]
mov eax, dword [ebp - 0x3c]
mov dword [ebp - 0x2c], ecx
mov dword [ebp - 0x38], eax
cmp eax, 3
jle 0x42a581
mov eax, 3
dec eax
je 0x42a5c4
dec eax
je 0x42a5ab
dec eax
jne 0x42a5d3
mov eax, dword [ebp - 0x2c]
lea ecx, [ebx + 1]
lea edx, [ecx + 1]
push edx
lea edx, [eax + 0x1a]
push edx
push ecx
lea ecx, [eax + 0xd]
push ecx
push ebx
push eax
push str._For__.9s_enter__2d____For__.9s_enter__2d____For__.9s_enter__2d_n
call edi
add esp, 0x1c
jmp 0x42a5d3
mov eax, dword [ebp - 0x2c]
lea edx, [ebx + 1]
push edx
lea ecx, [eax + 0xd]
push ecx
push ebx
push eax
push str._For__.9s_enter__2d____For__.9s_enter__2d_n
call edi
add esp, 0x14
jmp 0x42a5d3
mov edx, dword [ebp - 0x2c]
push ebx
push edx
push str._For__.9s_enter__2d_n
call edi
add esp, 0xc
mov eax, dword [ebp - 0x38]
add dword [ebp - 0x2c], 0x27
add ebx, 3
sub eax, 3
mov dword [ebp - 0x38], eax
cmp ebx, dword [ebp - 0x3c]
jle 0x42a577
xor ebx, ebx
cmp dword [esi + 0x18], ebx
je 0x42a690
push str._What_variable_is_the_level_2_ID_
call edi
add esp, 4
push 0x444520
call dword [sym.imp.MSVCR100.dll_gets]
add esp, 4
push 0x444520
call dword [sym.imp.MSVCR100.dll_atol]
dec eax
mov dword [esi + 0x18], eax
imul eax, eax, 0xd
add eax, dword [ebp - 0x34]
add esp, 4
push 0x24
push eax
inc ebx
call dword [sym.imp.MSVCR100.dll_strchr]
add esp, 8
test eax, eax
jne 0x42a65b
cmp dword [ebp - 0x30], eax
je 0x42a64f
cmp dword [0x448520], eax
jne 0x42a64f
push 0x440d18
call edi
add esp, 4
xor ebx, ebx
jmp 0x42a682
mov dword [0x448520], 1
jmp 0x42a682
cmp dword [ebp - 0x30], 0
je 0x42a678
cmp dword [0x448520], 0
je 0x42a678
push 0x440d18
call edi
add esp, 4
xor ebx, ebx
jmp 0x42a682
mov dword [0x448520], 0
test ebx, ebx
je 0x42a5f3
lea ebx, [ebx]
xor ebx, ebx
mov dword [ebp - 0x2c], ebx
cmp dword [esi + 0x1c], ebx
je 0x42a744
mov edi, edi
inc dword [ebp - 0x2c]
push str._n_What_variable_is_the_row_ID_
call edi
add esp, 4
push 0x444520
call dword [sym.imp.MSVCR100.dll_gets]
add esp, 4
push 0x444520
call dword [sym.imp.MSVCR100.dll_atol]
dec eax
mov dword [esi + 0x1c], eax
imul eax, eax, 0xd
add eax, dword [ebp - 0x34]
add esp, 4
push 0x24
push eax
inc ebx
call dword [sym.imp.MSVCR100.dll_strchr]
add esp, 8
test eax, eax
jne 0x42a70b
cmp dword [ebp - 0x30], eax
je 0x42a6ff
cmp dword [0x448520], eax
jne 0x42a6ff
push 0x440d18
call edi
add esp, 4
xor ebx, ebx
jmp 0x42a732
mov dword [0x448520], 1
jmp 0x42a732
cmp dword [ebp - 0x30], 0
je 0x42a728
cmp dword [0x448520], 0
je 0x42a728
push 0x440d18
call edi
add esp, 4
xor ebx, ebx
jmp 0x42a732
mov dword [0x448520], 0
cmp dword [ebp - 0x2c], 9
jg 0x42a7bb
test ebx, ebx
je 0x42a6a0
xor ebx, ebx
cmp dword [esi + 0x20], ebx
je 0x42a874
nop
push str._What_variable_is_the_column_ID_
call edi
add esp, 4
push 0x444520
call dword [sym.imp.MSVCR100.dll_gets]
add esp, 4
push 0x444520
call dword [sym.imp.MSVCR100.dll_atol]
dec eax
mov dword [esi + 0x20], eax
imul eax, eax, 0xd
add eax, dword [ebp - 0x34]
add esp, 4
push 0x24
push eax
inc ebx
call dword [sym.imp.MSVCR100.dll_strchr]
add esp, 8
test eax, eax
jne 0x42a845
cmp dword [ebp - 0x30], eax
je 0x42a839
cmp dword [0x448520], eax
jne 0x42a839
push 0x440d18
call edi
add esp, 4
xor ebx, ebx
jmp 0x42a86c
push str.Unable_to_get_a_proper_response_n
call edi
add esp, 4
call fcn.00406fe0
mov eax, dword [0x4596c4]
mov esi, dword [sym.imp.MSVCR100.dll_remove]
push eax
mov dword [0x443e58], 1
call esi
mov ecx, dword [0x448bc8]
add esp, 4
push ecx
call esi
add esp, 4
cmp dword [0x443e58], 0
je 0x42a831
mov edi, dword [sym.imp.MSVCR100.dll_clock]
call edi
mov ecx, eax
mov eax, 0x10624dd3
imul ecx
sar edx, 6
mov esi, edx
shr esi, 0x1f
add esi, edx
call edi
mov ecx, eax
mov eax, 0x10624dd3
imul ecx
sar edx, 6
mov eax, edx
shr eax, 0x1f
add eax, edx
sub eax, esi
cmp eax, 3
jbe 0x42a815
push 0xe
call dword [sym.imp.MSVCR100.dll_exit]
mov dword [0x448520], 1
jmp 0x42a86c
cmp dword [ebp - 0x30], 0
je 0x42a862
cmp dword [0x448520], 0
je 0x42a862
push 0x440d18
call edi
add esp, 4
xor ebx, ebx
jmp 0x42a86c
mov dword [0x448520], 0
test ebx, ebx
je 0x42a750
xor ebx, ebx
push 0xa
mov dword [esi + 0x14], ebx
call dword [sym.imp.MSVCR100.dll_putchar]
add esp, 4
cmp dword [0x448520], ebx
je 0x42a8ad
mov eax, dword [ebp - 0x30]
cmp eax, 3
ja case.default.0x42a894
jmp dword [eax*4 + 0x42aa64]
mov dword [ebp - 0x30], 3
jmp case.default.0x42a894
mov dword [ebp - 0x30], 1
jmp case.default.0x42a894
mov dword [ebp - 0x30], ebx
mov ecx, dword [esi + 0xc]
sub ecx, dword [ebp - 0x30]
cmp dword [esi + 0x14], ecx
jge 0x42a9c5
mov dword [ebp - 0x2c], 0
mov edx, dword [esi + 0x14]
inc edx
push edx
lea eax, [ebp - 0x28]
push eax
push str._Please_specify__s_variable__2d:__enter_0_to_end_
call edi
add esp, 0xc
push 0x444520
call dword [sym.imp.MSVCR100.dll_gets]
add esp, 4
cmp byte [0x444520], 0x30
je 0x42a9c5
push 0x444520
call dword [sym.imp.MSVCR100.dll_atol]
mov ebx, eax
add esp, 4
dec ebx
js 0x42a93d
mov ecx, dword [ebp - 0x3c]
dec ecx
cmp ebx, ecx
jg 0x42a93d
cmp ebx, dword [esi + 0x1c]
je 0x42a93d
cmp ebx, dword [esi + 0x20]
je 0x42a93d
mov edx, ebx
imul edx, edx, 0xd
add edx, dword [ebp - 0x34]
push 0x24
push edx
call dword [sym.imp.MSVCR100.dll_strchr]
add esp, 8
test eax, eax
je 0x42a938
push str._This_is_a_character_variable__n
jmp 0x42a942
inc dword [ebp - 0x2c]
jmp 0x42a947
push str._Not_a_valid_variable._Try_again._n
call edi
add esp, 4
xor eax, eax
mov dword [ebp - 0x38], eax
cmp dword [esi + 0xc], eax
jle 0x42a97b
mov ecx, dword [ebp - 0x40]
cmp dword [ecx + eax*4], ebx
jne 0x42a972
push str.You_have_already_chosen_that_variable__n
push 0x43a93c
call edi
mov eax, dword [ebp - 0x38]
add esp, 8
mov dword [ebp - 0x2c], 0
inc eax
mov dword [ebp - 0x38], eax
cmp eax, dword [esi + 0xc]
jl 0x42a951
movsx edx, word [esi + 0xa]
add edx, 0x19
js 0x42a9d6
cmp dword [ebp - 0x2c], 0
je 0x42a8c6
inc dword [esi + 0x14]
mov ecx, dword [esi + 0x14]
mov eax, ebx
imul ecx, ecx, 0xd
imul eax, eax, 0xd
add eax, dword [ebp - 0x34]
add ecx, dword [ebp - 0x44]
mov dl, byte [eax]
mov byte [ecx], dl
inc eax
inc ecx
test dl, dl
jne 0x42a9a2
mov eax, dword [esi + 0x14]
mov ecx, dword [ebp - 0x40]
mov dword [ecx + eax*4 - 4], ebx
mov edx, dword [esi + 0xc]
sub edx, dword [ebp - 0x30]
cmp dword [esi + 0x14], edx
jl 0x42a8bf
mov ecx, dword [ebp - 8]
pop edi
pop esi
xor ecx, ebp
pop ebx
call fcn.004391bc
mov esp, ebp
pop ebp
ret
push str.Unable_to_get_a_proper_response_n
call edi
add esp, 4
call fcn.00406fe0
mov eax, dword [0x4596c4]
mov esi, dword [sym.imp.MSVCR100.dll_remove]
push eax
mov dword [0x443e58], 1
call esi
mov ecx, dword [0x448bc8]
add esp, 4
push ecx
call esi
add esp, 4
cmp dword [0x443e58], 0
je 0x42aa4c
mov edi, dword [sym.imp.MSVCR100.dll_clock]
call edi
mov ecx, eax
mov eax, 0x10624dd3
imul ecx
sar edx, 6
mov esi, edx
shr esi, 0x1f
add esi, edx
call edi
mov ecx, eax
mov eax, 0x10624dd3
imul ecx
sar edx, 6
mov eax, edx
shr eax, 0x1f
add eax, edx
sub eax, esi
cmp eax, 3
jbe 0x42aa30
push 0xe
call dword [sym.imp.MSVCR100.dll_exit]
popal
movsb byte es:[edi], byte [esi]
inc edx
add byte [esp + 0x42], dh
add byte [eax - 0x5cffbd5c], cl
movsb byte es:[edi], byte [esi]
inc edx
add byte [eax + ebp*4 - 0x5764ffbe], ah
inc edx
add byte [eax + ebp*4 - 0x575bffbe], ah
inc edx
add ah, cl
int3