Function at 0x412820
Capabilities:
Delete file
Read file on windows
Terminate process

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
sub esp, 0x2c
cmp dword [0x489ae4], 5
push ebx
push esi
mov ebx, 0x64
push edi
mov dword [esp + 0x28], ebx
jne 0x41285a
mov eax, dword [0x468ec0]
mov edi, dword [eax + 0x80]
call fcn.00409ea0
mov ecx, dword [0x468ec0]
mov dword [ecx + 0x84], eax
mov edi, dword [sym.imp.MSVCR100.dll_realloc]
mov esi, dword [esp + 0x2c]
mov dword [0x489ae0], 0
mov edi, edi
cmp dword [0x489ae0], ebx
jl 0x4128f1
mov eax, dword [0x4804d4]
add ebx, ebx
mov edx, ebx
imul edx, dword [ebp + 8]
add edx, edx
add edx, edx
add edx, edx
push edx
push eax
mov dword [esp + 0x30], ebx
call edi
add esp, 8
test eax, eax
jne 0x41289f
call fcn.0040a000
cmp dword [0x476bc4], 0
mov dword [0x4804d4], eax
je 0x4128d1
mov edx, dword [0x489adc]
lea ecx, [ebx*8]
push ecx
push edx
call edi
add esp, 8
test eax, eax
jne 0x4128ca
call fcn.0040a000
mov dword [0x489adc], eax
jmp 0x4128f1
mov ecx, dword [0x4a5b34]
mov eax, ebx
imul eax, eax, 0xd
push eax
push ecx
call edi
add esp, 8
test eax, eax
jne 0x4128ec
call fcn.0040a000
mov dword [0x4a5b34], eax
cmp dword [0x476bc4], 0
mov edx, dword [0x489ae0]
je 0x41290a
mov eax, dword [0x489adc]
lea edx, [eax + edx*8]
jmp 0x412913
imul edx, edx, 0xd
add edx, dword [0x4a5b34]
mov ecx, dword [0x489ae0]
imul ecx, dword [ebp + 8]
mov eax, dword [0x4804d4]
lea ecx, [eax + ecx*8]
mov eax, dword [0x489ae4]
add eax, 0xfffffffe
mov dword [esp + 0x20], edx
cmp eax, 6
ja case.0x41293a.4
jmp dword [eax*4 + 0x413334]
mov edx, dword [0x468ec0]
mov eax, dword [0x4694a8]
mov dword [esp + 0x18], ecx
mov ecx, dword [edx + 0x74]
mov edx, dword [edx + 0x70]
inc ecx
cmp byte [eax], 0
mov dword [esp + 0x1c], eax
mov dword [esp + 0x14], edx
mov dword [esp + 0x24], 1
mov dword [esp + 0x10], ecx
je 0x412c01
cmp dword [esp + 0x10], 0
je 0x412c01
call fcn.0040ce70
mov edi, eax
cmp dword [edi], 0
mov dword [esp + 0x2c], 0
jle 0x412bd5
mov esi, dword [esp + 0x18]
jmp 0x4129a0
mov eax, dword [edi + 4]
dec eax
mov ebx, 1
cmp eax, 5
ja case.default.0x4129b2
jmp dword [eax*4 + 0x413350]
mov eax, dword [edi + 8]
test eax, eax
je 0x4129e3
mov ecx, dword [esp + 0x14]
push ecx
push 1
push eax
push 0x472ac0
call dword [sym.imp.MSVCR100.dll_fread]
add esp, 0x10
mov dword [esp + 0xc], 0
cmp eax, 1
jne 0x4129e7
mov dword [esp + 0xc], ebx
lea eax, [esp + 0x30]
push eax
push 0x45f79c
mov edx, dword [edi + 8]
push 0x472ac0
mov byte [edx + 0x472ac0], 0
call dword [sym.imp.MSVCR100.dll_sscanf]
fld qword [esp + 0x3c]
fstp qword [esi]
add esi, 8
add esp, 0xc
dec dword [esp + 0x10]
mov ebx, eax
mov dword [esp + 0x18], esi
jmp 0x412bae
cmp dword [edi + 8], 0xc
jg 0x412df0
mov eax, dword [esp + 0x24]
dec eax
je 0x412a7a
dec eax
jne 0x412f0a
mov esi, dword [esp + 0x2c]
push 0xd
push 0x489b30
push esi
call dword [sym.imp.MSVCR100.dll_strncpy]
mov eax, dword [edi + 8]
add esp, 0xc
test eax, eax
je 0x412a74
mov ecx, dword [esp + 0x14]
push ecx
push 1
push eax
push esi
call dword [sym.imp.MSVCR100.dll_fread]
add esp, 0x10
mov dword [esp + 0xc], 0
cmp eax, 1
jne 0x412abd
mov dword [esp + 0xc], ebx
jmp 0x412abd
mov esi, dword [esp + 0x20]
push 0xd
push 0x489b30
push esi
call dword [sym.imp.MSVCR100.dll_strncpy]
mov eax, dword [edi + 8]
add esp, 0xc
test eax, eax
je 0x412ab5
mov edx, dword [esp + 0x14]
push edx
push 1
push eax
push esi
call dword [sym.imp.MSVCR100.dll_fread]
add esp, 0x10
mov dword [esp + 0xc], 0
cmp eax, 1
jne 0x412ab9
mov dword [esp + 0xc], ebx
mov esi, dword [esp + 0x20]
mov eax, 0xc
call fcn.00409670
mov esi, dword [esp + 0x18]
mov eax, ebx
sub dword [esp + 0x10], eax
sub dword [esp + 0x24], eax
jmp 0x412bae
mov eax, dword [edi + 8]
test eax, eax
je 0x412b04
mov ecx, dword [esp + 0x14]
push ecx
push 1
push eax
push 0x472ac0
call dword [sym.imp.MSVCR100.dll_fread]
add esp, 0x10
mov dword [esp + 0xc], 0
cmp eax, 1
jne 0x412b08
mov dword [esp + 0xc], ebx
lea eax, [esp + 0x30]
push eax
push 0x465b84
jmp 0x4129f1
mov eax, dword [edi + 8]
test eax, eax
je 0x412b41
mov ecx, dword [esp + 0x14]
push ecx
push 1
push eax
push 0x472ac0
call dword [sym.imp.MSVCR100.dll_fread]
add esp, 0x10
mov dword [esp + 0xc], 0
cmp eax, 1
jne 0x412b45
mov dword [esp + 0xc], ebx
lea eax, [esp + 0x30]
push eax
push 0x465b88
jmp 0x4129f1
mov eax, dword [edi + 8]
test eax, eax
je 0x412b76
mov ecx, dword [esp + 0x14]
push ecx
push 1
push eax
push 0x472ac0
call dword [sym.imp.MSVCR100.dll_fread]
add esp, 0x10
cmp eax, 1
jne 0x412bea
mov dword [esp + 0xc], ebx
jmp 0x412bbd
mov edx, dword [esp + 0x14]
push edx
push 0x4000
push 0x472ac0
call dword [sym.imp.MSVCR100.dll_fgets]
add esp, 0xc
jmp 0x412bae
mov eax, dword [0x4694a8]
push eax
push str.problem_with_format_n_s_n
call dword [sym.imp.MSVCR100.dll_printf]
add esp, 8
inc dword [esp + 0xc]
cmp dword [esp + 0xc], 0
je 0x412bf2
test ebx, ebx
je 0x413026
cmp dword [esp + 0x10], 0
je 0x412bd5
mov eax, dword [esp + 0x2c]
inc eax
mov dword [esp + 0x2c], eax
cmp eax, dword [edi]
jl 0x4129a0
mov eax, dword [esp + 0x1c]
add eax, dword [edi + 0xc]
cmp byte [eax], 0
mov dword [esp + 0x1c], eax
je 0x412c01
jmp 0x412974
mov dword [esp + 0xc], 0
mov ebx, dword [esp + 0x28]
mov edi, dword [sym.imp.MSVCR100.dll_realloc]
or esi, 0xffffffff
jmp case.0x41293a.4
mov ecx, dword [esp + 0x14]
push ecx
push 0x4000
push 0x472ac0
call dword [sym.imp.MSVCR100.dll_fgets]
mov ebx, dword [esp + 0x34]
mov edi, dword [sym.imp.MSVCR100.dll_realloc]
add esp, 0xc
mov esi, eax
neg esi
sbb esi, esi
neg esi
dec esi
jmp case.0x41293a.4
push edx
mov edx, dword [ebp + 0xc]
push 0
push edx
push ecx
mov eax, 2
call fcn.00445ca0
add esp, 0x10
jmp 0x412c69
push ecx
push 2
xor ecx, ecx
call fcn.00443640
jmp 0x412c66
push 0
push 2
call fcn.00444f30
jmp 0x412c66
push edx
push 2
xor edx, edx
call fcn.00447780
add esp, 8
mov esi, eax
mov ecx, dword [0x489ae4]
mov eax, esi
cmp ecx, 8
jne 0x412c89
mov edx, dword [0x489ae0]
cmp edx, dword [0x468e20]
jl 0x412c89
lea eax, [esi + 1]
test eax, eax
jne 0x412c98
inc dword [0x489ae0]
jmp 0x412870
cmp eax, 0xa
je 0x413177
cmp ecx, 5
jne 0x413298
mov eax, dword [0x468ec0]
mov eax, dword [eax + 0x84]
test eax, eax
je 0x412cc3
push eax
call dword [sym.imp.MSVCR100.dll_free]
add esp, 4
mov edx, dword [0x468ec0]
mov eax, dword [edx + 0x70]
push eax
call dword [sym.imp.MSVCR100.dll_fclose]
add esp, 4
cmp dword [0x489ae4], 2
je 0x41332d
mov edi, dword [0x489ae0]
dec edi
mov dword [0x468cd4], 0
js 0x41332d
mov ecx, dword [ebp + 8]
fld qword [0x4a5b10]
mov eax, edi
imul eax, ecx
add eax, eax
add eax, eax
add eax, eax
mov dword [esp + 0x28], eax
mov eax, ecx
neg eax
add eax, eax
add eax, eax
add eax, eax
mov dword [esp + 0x20], eax
lea eax, [edi + 1]
imul eax, ecx
add eax, eax
add eax, eax
add eax, eax
mov dword [esp + 0x24], eax
mov ecx, dword [esp + 0x28]
add ecx, dword [0x4804d4]
xor ebx, ebx
xor esi, esi
cmp dword [ebp + 8], 4
mov dword [esp + 0x2c], ecx
jl 0x412d9a
mov edx, dword [ebp + 8]
add edx, 0xfffffffc
shr edx, 2
inc edx
lea ebx, [edx*4]
fld qword [ecx]
fld st(1)
fucompp
fnstsw ax
test ah, 0x44
jp 0x412d67
inc esi
fld qword [ecx + 8]
fld st(1)
fucompp
fnstsw ax
test ah, 0x44
jp 0x412d76
inc esi
fld qword [ecx + 0x10]
fld st(1)
fucompp
fnstsw ax
test ah, 0x44
jp 0x412d85
inc esi
fld qword [ecx + 0x18]
fld st(1)
fucompp
fnstsw ax
test ah, 0x44
jp 0x412d94
inc esi
add ecx, 0x20
dec edx
jne 0x412d59
cmp ebx, dword [ebp + 8]
jge 0x412db8
mov edx, dword [ebp + 8]
sub edx, ebx
fld qword [ecx]
fld st(1)
fucompp
fnstsw ax
test ah, 0x44
jp 0x412db2
inc esi
add ecx, 8
dec edx
jne 0x412da4
test esi, esi
je 0x413318
cmp dword [0x476bc4], 0
fstp st(0)
mov esi, dword [0x489ae0]
je 0x4132c4
mov eax, dword [0x489adc]
push 1
push 1
push eax
mov eax, esi
mov edx, edi
call fcn.00408b00
add esp, 0xc
jmp 0x4132d7
push str.id_must_be_12_or_fewer_characters_n
call dword [sym.imp.MSVCR100.dll_printf]
add esp, 4
cmp dword [0x4a5b3c], 0
je 0x412e7f
cmp dword [0x489ad0], 0
je 0x412e7f
push str.stdout
push 0x476be0
call dword [sym.imp.MSVCR100.dll__stricmp]
add esp, 8
test eax, eax
je 0x412e52
mov eax, dword [0x489ad0]
push eax
call dword [sym.imp.MSVCR100.dll__ftelli64]
mov ecx, dword [0x489ad0]
add esp, 4
push edx
push eax
push ecx
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 0x412e70
mov edx, dword [0x489ad0]
push str.__body___html__n
push edx
call dword [sym.imp.MSVCR100.dll_fprintf]
add esp, 8
mov eax, dword [0x489ad0]
push eax
call dword [sym.imp.MSVCR100.dll_fclose]
add esp, 4
call fcn.0040a1a0
mov ecx, dword [0x469488]
mov esi, dword [sym.imp.MSVCR100.dll_remove]
inc dword [0x468ff8]
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
mov edx, dword [0x469488]
mov esi, dword [sym.imp.MSVCR100.dll_free]
add esp, 4
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
add esp, 4
cmp dword [0x468ff8], 0
je 0x412f02
call fcn.00409900
push 0x64
call dword [sym.imp.MSVCR100.dll_exit]
push 1
push str._nThere_should_only_be__d_ID_field_s__specified__n
call dword [sym.imp.MSVCR100.dll_printf]
add esp, 8
cmp dword [0x4a5b3c], 0
je 0x412f9b
cmp dword [0x489ad0], 0
je 0x412f9b
push str.stdout
push 0x476be0
call dword [sym.imp.MSVCR100.dll__stricmp]
add esp, 8
test eax, eax
je 0x412f6e
mov eax, dword [0x489ad0]
push eax
call dword [sym.imp.MSVCR100.dll__ftelli64]
mov ecx, dword [0x489ad0]
add esp, 4
push edx
push eax
push ecx
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 0x412f8c
mov edx, dword [0x489ad0]
push str.__body___html__n
push edx
call dword [sym.imp.MSVCR100.dll_fprintf]
add esp, 8
mov eax, dword [0x489ad0]
push eax
call dword [sym.imp.MSVCR100.dll_fclose]
add esp, 4
call fcn.0040a1a0
mov ecx, dword [0x469488]
mov esi, dword [sym.imp.MSVCR100.dll_remove]
inc dword [0x468ff8]
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
mov edx, dword [0x469488]
mov esi, dword [sym.imp.MSVCR100.dll_free]
add esp, 4
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
add esp, 4
cmp dword [0x468ff8], 0
je 0x41301e
call fcn.00409900
push 0x64
call dword [sym.imp.MSVCR100.dll_exit]
mov eax, dword [esp + 0x1c]
push eax
push str._nData_do_not_match_format_at__s_n
call dword [sym.imp.MSVCR100.dll_printf]
add esp, 8
cmp dword [0x4a5b3c], 0
je 0x4130bb
cmp dword [0x489ad0], 0
je 0x4130bb
push str.stdout
push 0x476be0
call dword [sym.imp.MSVCR100.dll__stricmp]
add esp, 8
test eax, eax
je 0x41308e
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 0x4130ab
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 0x41316f
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 0x413153
push 0x64
call dword [sym.imp.MSVCR100.dll_exit]
mov edx, dword [0x489ae0]
push edx
push str.problem_at_line__ld_n
call dword [sym.imp.MSVCR100.dll_printf]
add esp, 8
cmp dword [0x4a5b3c], 0
je 0x41320d
cmp dword [0x489ad0], 0
je 0x41320d
push str.stdout
push 0x476be0
call dword [sym.imp.MSVCR100.dll__stricmp]
add esp, 8
test eax, eax
je 0x4131e0
mov eax, dword [0x489ad0]
push eax
call dword [sym.imp.MSVCR100.dll__ftelli64]
mov ecx, dword [0x489ad0]
add esp, 4
push edx
push eax
push ecx
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 0x4131fe
mov edx, dword [0x489ad0]
push str.__body___html__n
push edx
call dword [sym.imp.MSVCR100.dll_fprintf]
add esp, 8
mov eax, dword [0x489ad0]
push eax
call dword [sym.imp.MSVCR100.dll_fclose]
add esp, 4
call fcn.0040a1a0
mov ecx, dword [0x469488]
mov esi, dword [sym.imp.MSVCR100.dll_remove]
inc dword [0x468ff8]
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
mov edx, dword [0x469488]
mov esi, dword [sym.imp.MSVCR100.dll_free]
add esp, 4
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
add esp, 4
cmp dword [0x468ff8], 0
je 0x413290
call fcn.00409900
push 0x64
call dword [sym.imp.MSVCR100.dll_exit]
cmp ecx, 9
jne 0x412cc3
mov ecx, dword [0x468ec0]
mov eax, dword [ecx + 0xa0]
test eax, eax
je 0x412ce3
push eax
call dword [sym.imp.MSVCR100.dll_free]
add esp, 4
jmp 0x412ce3
mov ecx, dword [0x4a5b34]
push ecx
mov eax, esi
mov ecx, edi
call fcn.00423ae0
add esp, 4
mov ecx, dword [esp + 0x24]
add ecx, dword [0x4804d4]
mov edx, esi
sub edx, edi
mov esi, 1
sub edx, esi
imul edx, dword [ebp + 8]
add edx, edx
add edx, edx
add edx, edx
push edx
mov edx, dword [esp + 0x30]
push ecx
push edx
call dword [sym.imp.MSVCR100.dll_memmove]
add dword [0x468cd4], esi
fld qword [0x4a5b10]
add esp, 0xc
sub dword [0x489ae0], esi
mov eax, dword [esp + 0x20]
add dword [esp + 0x28], eax
add dword [esp + 0x24], eax
dec edi
jns 0x412d30
fstp st(0)
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret