Function at 0x445560
Capabilities:
Delete file
Terminate process

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
sub esp, 0x44
mov eax, dword [section..data]
xor eax, esp
mov dword [esp + 0x40], eax
mov eax, dword [ebp + 0xc]
push ebx
push esi
push edi
mov edi, dword [ebp + 8]
mov esi, ecx
mov dword [esp + 0x20], eax
call fcn.0040a890
test eax, eax
je 0x4455ae
push edi
lea ecx, [esp + 0x48]
push str.level__1d
push ecx
call dword [sym.imp.MSVCR100.dll_sprintf]
add esp, 0xc
lea eax, [esp + 0x44]
mov ebx, 1
call fcn.004016c0
mov eax, edi
dec eax
je 0x4455fb
dec eax
je 0x4455e2
dec eax
jne 0x44560e
mov edx, dword [str.column_level]
mov eax, dword [0x46589c]
mov ecx, dword [0x4658a0]
mov dword [esp + 0x24], edx
mov dl, byte [0x4658a4]
mov dword [esp + 0x28], eax
mov dword [esp + 0x2c], ecx
mov byte [esp + 0x30], dl
jmp 0x44560e
mov dx, word [0x465894]
mov eax, dword [str.row_level]
mov ecx, dword [0x465890]
mov word [esp + 0x2c], dx
jmp 0x445606
mov eax, dword [str.level_1]
mov ecx, dword [0x460b78]
mov dword [esp + 0x28], ecx
mov dword [esp + 0x24], eax
mov eax, dword [esi + 0x20]
movsx edx, word [esi + 0xa]
mov ecx, dword [esi + 4]
mov dword [esp + 0x14], eax
xor eax, eax
mov dword [esp + 0x10], edx
mov dword [esp + 0x1c], ecx
cmp dword [esi + 0xc], eax
jle 0x44563d
jmp 0x445630
mov dword [ecx + eax*4], 0xffffffff
inc eax
cmp eax, dword [esi + 0xc]
jl 0x445630
lea ecx, [esp + 0x24]
push ecx
push str._n_The_available__s_variables_are:_n
call dword [sym.imp.MSVCR100.dll_printf]
mov edi, 1
add esp, 8
cmp dword [esp + 0x10], edi
jl 0x4456e6
mov eax, dword [esp + 0x10]
mov ebx, dword [esp + 0x14]
mov dword [esp + 0xc], eax
jmp 0x445670
cmp eax, 3
jle 0x44567a
mov eax, 3
dec eax
je 0x4456bf
dec eax
je 0x4456a5
dec eax
jne 0x4456cf
lea eax, [edi + 1]
lea edx, [eax + 1]
push edx
lea ecx, [ebx + 0x1a]
push ecx
push eax
lea edx, [ebx + 0xd]
push edx
push edi
push ebx
push str._For__.9s_enter__2d____For__.9s_enter__2d____For__.9s_enter__2d_n
call dword [sym.imp.MSVCR100.dll_printf]
add esp, 0x1c
jmp 0x4456cf
lea eax, [edi + 1]
push eax
lea ecx, [ebx + 0xd]
push ecx
push edi
push ebx
push str._For__.9s_enter__2d____For__.9s_enter__2d_n
call dword [sym.imp.MSVCR100.dll_printf]
add esp, 0x14
jmp 0x4456cf
push edi
push ebx
push str._For__.9s_enter__2d_n
call dword [sym.imp.MSVCR100.dll_printf]
add esp, 0xc
mov eax, dword [esp + 0xc]
add edi, 3
sub eax, 3
add ebx, 0x27
mov dword [esp + 0xc], eax
cmp edi, dword [esp + 0x10]
jle 0x445670
mov edi, dword [sym.imp.MSVCR100.dll_printf]
xor ebx, ebx
mov dword [esp + 0xc], ebx
inc dword [esp + 0xc]
push str._n_What_variable_is_the_row_ID_
call edi
add esp, 4
push 0x472ac0
call dword [sym.imp.MSVCR100.dll_gets]
add esp, 4
push 0x472ac0
call dword [sym.imp.MSVCR100.dll_atol]
add esp, 4
dec eax
mov dword [esi + 0x18], eax
js 0x44572e
mov edx, dword [esp + 0x10]
dec edx
cmp eax, edx
jg 0x44572e
inc ebx
jmp 0x445738
push str._Not_a_valid_variable._Try_again._n
call edi
add esp, 4
mov eax, dword [esi + 0x18]
imul eax, eax, 0xd
add eax, dword [esp + 0x14]
push 0x24
push eax
call dword [sym.imp.MSVCR100.dll_strchr]
add esp, 8
test eax, eax
jne 0x44577a
mov eax, 1
cmp dword [ebp + 8], eax
jle 0x445773
cmp dword [0x476bc4], 0
jne 0x445773
push 0x465aa4
call edi
add esp, 4
xor ebx, ebx
jmp 0x4457a1
mov dword [0x476bc4], eax
jmp 0x4457a1
cmp dword [ebp + 8], 1
jle 0x445797
cmp dword [0x476bc4], 0
je 0x445797
push 0x465aa4
call edi
add esp, 4
xor ebx, ebx
jmp 0x4457a1
mov dword [0x476bc4], 0
cmp dword [esp + 0xc], 9
jg 0x44580c
test ebx, ebx
je 0x4456f2
xor ebx, ebx
cmp dword [esi + 0x1c], ebx
je 0x4459d0
jmp 0x4457c0
push str._What_variable_is_the_column_ID_
call edi
add esp, 4
push 0x472ac0
call dword [sym.imp.MSVCR100.dll_gets]
add esp, 4
push 0x472ac0
call dword [sym.imp.MSVCR100.dll_atol]
add esp, 4
dec eax
mov dword [esi + 0x1c], eax
js 0x445954
mov edx, dword [esp + 0x10]
dec edx
cmp eax, edx
jg 0x445954
cmp eax, dword [esi + 0x18]
je 0x445954
inc ebx
jmp 0x44595e
push str.Unable_to_get_a_proper_response_n
call edi
add esp, 4
cmp dword [0x4a5b3c], 0
je 0x445898
cmp dword [0x489ad0], 0
je 0x445898
push str.stdout
push 0x476be0
call dword [sym.imp.MSVCR100.dll__stricmp]
add esp, 8
test eax, eax
je 0x44586b
mov ecx, dword [0x489ad0]
push ecx
call dword [sym.imp.MSVCR100.dll__ftelli64]
add esp, 4
push edx
mov edx, dword [0x489ad0]
push eax
push edx
call dword [sym.imp.MSVCR100.dll__fileno]
add esp, 4
push eax
call dword [sym.imp.MSVCR100.dll__chsize_s]
add esp, 0xc
cmp dword [0x4a5b4c], 0
je 0x445888
mov eax, dword [0x489ad0]
push str.__body___html__n
push eax
call dword [sym.imp.MSVCR100.dll_fprintf]
add esp, 8
mov ecx, dword [0x489ad0]
push ecx
call dword [sym.imp.MSVCR100.dll_fclose]
add esp, 4
call fcn.0040a1a0
mov edx, dword [0x469488]
mov esi, dword [sym.imp.MSVCR100.dll_remove]
inc dword [0x468ff8]
push edx
call esi
mov eax, dword [0x4899d8]
add esp, 4
push eax
call esi
mov ecx, dword [0x4802bc]
add esp, 4
push ecx
call esi
mov edx, dword [0x4802cc]
add esp, 4
push edx
call esi
mov eax, dword [0x469488]
mov esi, dword [sym.imp.MSVCR100.dll_free]
add esp, 4
push eax
call esi
mov ecx, dword [0x4899d8]
add esp, 4
push ecx
call esi
mov edx, dword [0x4802bc]
add esp, 4
push edx
call esi
mov eax, dword [0x4802cc]
add esp, 4
push eax
call esi
add esp, 4
cmp dword [0x468ff8], 0
je 0x44594c
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 ecx, edx
shr ecx, 0x1f
add ecx, edx
sub ecx, esi
cmp ecx, 3
jbe 0x445930
push 0xe
call dword [sym.imp.MSVCR100.dll_exit]
push str._Not_a_valid_variable._Try_again._n
call edi
add esp, 4
mov eax, dword [esi + 0x1c]
imul eax, eax, 0xd
add eax, dword [esp + 0x14]
push 0x24
push eax
call dword [sym.imp.MSVCR100.dll_strchr]
add esp, 8
test eax, eax
jne 0x4459a0
mov eax, 1
cmp dword [ebp + 8], eax
jle 0x445999
cmp dword [0x476bc4], 0
jne 0x445999
push 0x465aa4
call edi
add esp, 4
xor ebx, ebx
jmp 0x4459c7
mov dword [0x476bc4], eax
jmp 0x4459c7
cmp dword [ebp + 8], 1
jle 0x4459bd
cmp dword [0x476bc4], 0
je 0x4459bd
push 0x465aa4
call edi
add esp, 4
xor ebx, ebx
jmp 0x4459c7
mov dword [0x476bc4], 0
test ebx, ebx
je 0x4457c0
nop
xor edi, edi
push 0xa
mov dword [esi + 0x14], edi
call dword [sym.imp.MSVCR100.dll_putchar]
add esp, 4
cmp dword [0x476bc4], edi
je 0x445a0b
mov eax, dword [ebp + 8]
cmp eax, 1
je 0x445a01
jle 0x445a0f
cmp eax, 3
jg 0x445a0f
mov dword [esp + 0xc], 1
jmp 0x445a0f
mov dword [esp + 0xc], 2
jmp 0x445a0f
mov dword [esp + 0xc], edi
mov ecx, dword [esi + 0xc]
sub ecx, dword [esp + 0xc]
cmp dword [esi + 0x14], ecx
jge 0x445b39
mov dword [esp + 0x18], 0
jmp 0x445a30
mov edx, dword [esi + 0x14]
mov edi, dword [sym.imp.MSVCR100.dll_printf]
inc edx
push edx
lea eax, [esp + 0x28]
push eax
push str._Please_specify__s_variable__2d:__enter_0_to_end_
call edi
add esp, 0xc
push 0x472ac0
call dword [sym.imp.MSVCR100.dll_gets]
add esp, 4
cmp byte [0x472ac0], 0x30
je 0x445b39
push 0x472ac0
call dword [sym.imp.MSVCR100.dll_atol]
mov ebx, eax
add esp, 4
dec ebx
js 0x445aac
mov ecx, dword [esp + 0x10]
dec ecx
cmp ebx, ecx
jg 0x445aac
cmp ebx, dword [esi + 0x18]
je 0x445aac
mov edx, ebx
imul edx, edx, 0xd
add edx, dword [esp + 0x14]
push 0x24
push edx
call dword [sym.imp.MSVCR100.dll_strchr]
add esp, 8
test eax, eax
je 0x445aa6
push str._This_is_a_character_variable__n
jmp 0x445ab1
inc dword [esp + 0x18]
jmp 0x445ab6
push str._Not_a_valid_variable._Try_again._n
call edi
add esp, 4
xor edi, edi
cmp dword [esi + 0xc], edi
jle 0x445aea
lea ecx, [ecx]
mov eax, dword [esp + 0x1c]
cmp dword [eax + edi*4], ebx
jne 0x445ae4
push str.You_have_already_chosen_that_variable__n
push 0x45e93c
call dword [sym.imp.MSVCR100.dll_printf]
add esp, 8
mov dword [esp + 0x18], 0
inc edi
cmp edi, dword [esi + 0xc]
jl 0x445ac0
movsx ecx, word [esi + 0xa]
add ecx, 0x19
js 0x445b4b
cmp dword [esp + 0x18], 0
je 0x445a30
inc dword [esi + 0x14]
mov ecx, dword [esi + 0x14]
mov eax, ebx
imul ecx, ecx, 0xd
imul eax, eax, 0xd
add eax, dword [esp + 0x14]
add ecx, dword [esp + 0x20]
mov dl, byte [eax]
mov byte [ecx], dl
inc eax
inc ecx
test dl, dl
jne 0x445b14
mov edx, dword [esi + 0x14]
mov eax, dword [esp + 0x1c]
mov dword [eax + edx*4 - 4], ebx
mov ecx, dword [esi + 0xc]
sub ecx, dword [esp + 0xc]
cmp dword [esi + 0x14], ecx
jl 0x445a1f
mov ecx, dword [esp + 0x4c]
pop edi
pop esi
pop ebx
xor ecx, esp
call fcn.0045d089
mov esp, ebp
pop ebp
ret
push str.Unable_to_get_a_proper_response_n
call dword [sym.imp.MSVCR100.dll_printf]
add esp, 4
cmp dword [0x4a5b3c], 0
je 0x445bdb
cmp dword [0x489ad0], 0
je 0x445bdb
push str.stdout
push 0x476be0
call dword [sym.imp.MSVCR100.dll__stricmp]
add esp, 8
test eax, eax
je 0x445bad
mov edx, dword [0x489ad0]
push edx
call dword [sym.imp.MSVCR100.dll__ftelli64]
add esp, 4
push edx
push eax
mov eax, dword [0x489ad0]
push eax
call dword [sym.imp.MSVCR100.dll__fileno]
add esp, 4
push eax
call dword [sym.imp.MSVCR100.dll__chsize_s]
add esp, 0xc
cmp dword [0x4a5b4c], 0
je 0x445bcb
mov ecx, dword [0x489ad0]
push str.__body___html__n
push ecx
call dword [sym.imp.MSVCR100.dll_fprintf]
add esp, 8
mov edx, dword [0x489ad0]
push edx
call dword [sym.imp.MSVCR100.dll_fclose]
add esp, 4
call fcn.0040a1a0
mov eax, dword [0x469488]
mov esi, dword [sym.imp.MSVCR100.dll_remove]
inc dword [0x468ff8]
push eax
call esi
mov ecx, dword [0x4899d8]
add esp, 4
push ecx
call esi
mov edx, dword [0x4802bc]
add esp, 4
push edx
call esi
mov eax, dword [0x4802cc]
add esp, 4
push eax
call esi
mov ecx, dword [0x469488]
mov esi, dword [sym.imp.MSVCR100.dll_free]
add esp, 4
push ecx
call esi
mov edx, dword [0x4899d8]
add esp, 4
push edx
call esi
mov eax, dword [0x4802bc]
add esp, 4
push eax
call esi
mov ecx, dword [0x4802cc]
add esp, 4
push ecx
call esi
add esp, 4
cmp dword [0x468ff8], 0
je 0x445c8f
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 0x445c73
push 0xe
call dword [sym.imp.MSVCR100.dll_exit]
int3