Function at 0x423053
Capabilities:
Delete file
Print debug messages
Write file on windows

Disassembly:
push ebp
lea ebp, [esp - 0x37c]
sub esp, 0x3fc
mov eax, dword [0x4705d0]
xor eax, ebp
mov dword [ebp + 0x378], eax
mov eax, dword [ebp + 0x38c]
push ebx
push esi
push edi
push 0x207
mov dword [ebp - 0x60], eax
xor edi, edi
lea eax, [ebp - 0x5b]
push edi
push eax
mov byte [ebp - 0x5c], 0
call fcn.004464f0
push 0x103
lea eax, [ebp + 0x22d]
push edi
push eax
mov byte [ebp + 0x22c], 0
call fcn.004464f0
push 0x47
lea eax, [ebp + 0x331]
push edi
push eax
mov byte [ebp + 0x330], 0
call fcn.004464f0
push 0x7f
lea eax, [ebp + 0x1ad]
push edi
push eax
mov byte [ebp + 0x1ac], 0
call fcn.004464f0
mov esi, dword [ebp + 0x388]
mov ebx, dword [ebp + 0x384]
imul esi, esi, 0xf54
lea ebx, [ebx*4 + 0x473bec]
mov eax, dword [ebx]
add eax, esi
lea ecx, [eax + 0xc88]
add esp, 0x30
mov dword [ebp - 0x68], edi
cmp ecx, edi
je 0x423a82
cmp byte [ecx], 0
je 0x423a82
cmp dword [ebp + 0x390], 1
jne 0x423132
mov ecx, dword [ebp - 0x60]
mov cl, byte [ecx]
cmp cl, 0x30
je 0x423125
test cl, cl
jne 0x423132
cmp dword [eax + 0xf28], 1
jg 0x423a82
and dword [ebp - 0x80], edi
xor eax, eax
lea edi, [ebp - 0x7c]
stosd dword es:[edi], eax
stosd dword es:[edi], eax
stosd dword es:[edi], eax
stosd dword es:[edi], eax
stosd dword es:[edi], eax
lea eax, [ebp - 0x80]
push eax
call dword [sym.imp.KERNEL32.dll_InitializeCriticalSection]
lea eax, [ebp - 0x80]
push eax
call dword [sym.imp.KERNEL32.dll_EnterCriticalSection]
mov eax, dword [ebp - 0x60]
and dword [ebp - 0x64], 0
cmp eax, dword [0x4775e4]
jne 0x423169
mov dword [ebp - 0x64], 1
mov eax, dword [ebx]
add eax, esi
lea edi, [eax + 0xc88]
mov cl, byte [edi]
cmp cl, 0x4d
je 0x423183
cmp cl, 0x56
jne 0x423332
cmp byte [eax + 0xcc8], 0x7b
jne 0x42332d
cmp byte [eax + 0xcca], 0x7d
jne 0x42332d
mov dl, byte [eax + 0xcc9]
cmp dl, 0x31
jl 0x42332d
cmp dl, 0x39
jg 0x42332d
movsx eax, dl
add eax, 0xffffffd0
cmp eax, 1
jge 0x4231c5
xor eax, eax
inc eax
jmp 0x4231cd
cmp eax, 9
jle 0x4231cd
push 9
pop eax
mov edi, dword [sym.imp.KERNEL32.dll_lstrlenA]
lea eax, [eax*4 + 0x473bc0]
mov dword [ebp - 0x64], eax
mov eax, dword [eax]
test eax, eax
jne 0x42323c
push dword [ebp - 0x60]
call edi
cmp dword [ebp + 0x390], eax
jle 0x4231f8
mov eax, dword [ebp + 0x390]
jmp 0x4231fd
push dword [ebp - 0x60]
call edi
lea ecx, [eax + 0x10000]
mov eax, 0x1000
cmp ecx, eax
jle 0x42322b
push dword [ebp - 0x60]
call edi
cmp dword [ebp + 0x390], eax
jle 0x423221
mov eax, dword [ebp + 0x390]
jmp 0x423226
push dword [ebp - 0x60]
call edi
add eax, 0x10000
push 1
push eax
call fcn.004462a8
pop ecx
pop ecx
mov ecx, dword [ebp - 0x64]
mov dword [ecx], eax
jmp 0x423282
push eax
call fcn.00446205
cmp eax, dword [ebp + 0x390]
mov eax, dword [ebp - 0x64]
mov eax, dword [eax]
pop ecx
jae 0x423263
test eax, eax
je 0x42325b
push eax
call fcn.00445e06
pop ecx
mov eax, dword [ebp - 0x64]
and dword [eax], 0
jmp 0x423282
test eax, eax
je 0x423270
push eax
call fcn.00446205
pop ecx
jmp 0x423272
xor eax, eax
push eax
mov eax, dword [ebp - 0x64]
push 0
push dword [eax]
call fcn.004464f0
add esp, 0xc
mov eax, dword [ebp - 0x64]
cmp dword [eax], 0
je 0x423a6e
cmp dword [ebp - 0x60], 0
je 0x4232e1
push dword [ebp - 0x60]
call edi
inc eax
cmp dword [ebp + 0x390], eax
jle 0x4232aa
mov eax, dword [ebp + 0x390]
jmp 0x4232b0
push dword [ebp - 0x60]
call edi
inc eax
test eax, eax
jle 0x4232e1
push dword [ebp - 0x60]
call edi
inc eax
cmp dword [ebp + 0x390], eax
jle 0x4232ca
mov eax, dword [ebp + 0x390]
jmp 0x4232d0
push dword [ebp - 0x60]
call edi
inc eax
push eax
push dword [ebp - 0x60]
mov eax, dword [ebp - 0x64]
push dword [eax]
call fcn.00445ea0
add esp, 0xc
push dword [ebp - 0x60]
call edi
cmp eax, 0x102
jge 0x423a6e
push dword [ebp - 0x60]
call edi
inc eax
cmp dword [ebp + 0x390], eax
jle 0x423307
mov eax, dword [ebp + 0x390]
jmp 0x42330d
push dword [ebp - 0x60]
call edi
inc eax
push eax
mov eax, dword [ebx]
push dword [ebp - 0x60]
lea eax, [eax + esi + 0xcc8]
push eax
push str._____s____s____d_bytes_
call fcn.0042036e
add esp, 0x10
jmp 0x423a6e
cmp cl, 0x56
je 0x42333b
cmp cl, 0x76
jne 0x4235c4
add eax, 0xcc8
cmp byte [eax], 0
je 0x4235c4
xor edx, edx
mov esi, eax
mov cl, byte [esi]
cmp cl, 0x41
jl 0x423359
cmp cl, 0x5a
jle 0x423390
cmp cl, 0x61
jl 0x423363
cmp cl, 0x7a
jle 0x423390
cmp cl, 0x30
jl 0x42336d
cmp cl, 0x39
jle 0x423390
cmp cl, 0x5f
je 0x423390
cmp cl, 0x2e
je 0x423390
cmp cl, 0x5b
je 0x423390
cmp cl, 0x5d
je 0x423390
cmp cl, 0x7b
je 0x423390
cmp cl, 0x7d
je 0x423390
cmp cl, 0x25
jne 0x423397
inc edx
inc esi
cmp edx, 0x40
jl 0x42334d
lea ecx, [edx + 1]
cmp ecx, 0x3f
jle 0x4233a2
push 0x3f
pop ecx
mov ebx, dword [sym.imp.KERNEL32.dll_lstrcpynA]
push ecx
push eax
lea eax, [ebp + 0x330]
push eax
call ebx
lea eax, [ebp + 0x330]
push 0x45cd94
push eax
call fcn.00445d80
mov esi, dword [sym.imp.KERNEL32.dll_lstrlenA]
pop ecx
pop ecx
test eax, eax
jne 0x4233ea
push 0x459858
lea eax, [ebp + 0x330]
push eax
call fcn.0043f997
cmp eax, 2
jl 0x423477
lea eax, [ebp + 0x330]
push 0x25
push eax
call fcn.00445cc0
mov edi, eax
pop ecx
pop ecx
lea eax, [edi + 1]
test edi, edi
jne 0x423409
lea eax, [ebp + 0x330]
push 0x7f
lea ecx, [ebp + 0x1ac]
push ecx
push dword [ebp + 0x388]
push dword [ebp + 0x384]
push eax
call fcn.0043db78
cmp dword [ebp - 0x64], 0
je 0x423432
mov eax, dword [0x4775e4]
mov dword [ebp - 0x60], eax
test edi, edi
je 0x423449
push 0x459858
push 0
lea eax, [ebp + 0x1ac]
push eax
call fcn.0043feaa
lea eax, [ebp + 0x1ac]
push eax
call esi
mov ecx, eax
push 0x3f
inc ecx
pop eax
cmp ecx, eax
jg 0x423466
lea eax, [ebp + 0x1ac]
push eax
call esi
inc eax
push eax
lea eax, [ebp + 0x1ac]
push eax
lea eax, [ebp + 0x330]
push eax
call ebx
cmp byte [ebp + 0x330], 0
je 0x423a6e
cmp byte [ebp + 0x330], 0x25
lea eax, [ebp + 0x331]
je 0x423499
lea eax, [ebp + 0x330]
push eax
lea eax, [ebp - 0x5c]
push str.SOFTWARE_vTaskUserVariables_s
push eax
call dword [sym.imp.USER32.dll_wsprintfA]
mov edi, dword [ebp - 0x60]
add esp, 0xc
mov byte [ebp + 0x22c], 0
test edi, edi
je 0x4234ee
push edi
call esi
mov ecx, eax
inc ecx
mov eax, 0x102
cmp ecx, eax
jg 0x4234cd
push edi
call esi
inc eax
push eax
push edi
lea eax, [ebp + 0x22c]
push eax
call ebx
push 4
lea eax, [ebp + 0x310]
push 0x45e2fc
push eax
call fcn.00445ea0
add esp, 0xc
lea eax, [ebp + 0x22c]
push 0x45e2f0
push eax
call fcn.00448020
mov edi, dword [ebp + 0x390]
pop ecx
pop ecx
test eax, eax
jne 0x423577
cmp edi, 5
jg 0x423547
lea eax, [ebp + 0x22c]
push str.0123456789._
push eax
call fcn.004481e0
pop ecx
mov ebx, eax
pop ecx
lea eax, [ebp + 0x22c]
push eax
call esi
cmp ebx, eax
jb 0x423547
lea eax, [ebp + 0x22c]
push eax
lea eax, [ebp + 0x330]
push eax
push str._____s____s_
jmp 0x423584
push dword [ebp - 0x60]
call esi
cmp eax, edi
jle 0x423557
push dword [ebp - 0x60]
call esi
jmp 0x423559
mov eax, edi
push eax
lea eax, [ebp + 0x22c]
push eax
lea eax, [ebp + 0x330]
push eax
push str._____s____s____li_bytes_
call fcn.0042036e
add esp, 0x10
jmp 0x42358c
push edi
lea eax, [ebp + 0x330]
push eax
push str._____s___d_bytes__binary_
call fcn.0042036e
add esp, 0xc
mov ebx, dword [ebp - 0x60]
test ebx, ebx
je 0x4235a8
cmp edi, 1
jl 0x4235a8
push ebx
call esi
cmp edi, eax
lea eax, [ebp - 0x5c]
push eax
jg 0x4235a4
inc edi
push edi
push ebx
jmp 0x4235b3
lea eax, [ebp - 0x5c]
push eax
push 1
push 0x4597fe
push 1
push 2
call fcn.0044129f
add esp, 0x14
jmp 0x423a6e
push 0x45e294
push edi
call fcn.004010ff
pop ecx
test eax, eax
mov eax, dword [ebx]
pop ecx
je 0x4235ec
push dword [ebp - 0x60]
lea eax, [eax + esi + 0xcc8]
push eax
call fcn.00442784
jmp 0x423a6e
lea eax, [eax + esi + 0xc88]
push str.clip
push eax
call fcn.004010ff
pop ecx
pop ecx
test eax, eax
je 0x423657
mov edi, dword [ebp - 0x60]
test edi, edi
je 0x42364c
cmp byte [edi], 0
je 0x42364c
mov esi, dword [sym.imp.KERNEL32.dll_lstrlenA]
push edi
call esi
mov ecx, eax
inc ecx
mov eax, 0x206
cmp ecx, eax
jg 0x423629
push edi
call esi
inc eax
push eax
push edi
lea eax, [ebp - 0x5c]
push eax
call dword [sym.imp.KERNEL32.dll_lstrcpynA]
lea eax, [ebp - 0x5c]
push eax
push dword [ebp + 0x390]
push str.____Saving__li_byte_s__to_clipboard:___s_
call fcn.0042036e
add esp, 0xc
push edi
call fcn.00440709
jmp 0x423a6e
mov eax, dword [ebx]
lea eax, [eax + esi + 0xc88]
push str.File
push eax
call fcn.004010ff
pop ecx
pop ecx
test eax, eax
je 0x423770
mov eax, dword [ebx]
lea eax, [eax + esi + 0xcc8]
cmp byte [eax], 0
je 0x423770
push 0x103
lea ecx, [ebp + 0x22c]
push ecx
push dword [ebp + 0x388]
push dword [ebp + 0x384]
push eax
call fcn.0043db78
cmp dword [ebp - 0x64], 0
mov edi, dword [0x4775e4]
jne 0x4236b4
mov edi, dword [ebp - 0x60]
lea eax, [ebp + 0x22c]
push eax
call dword [sym.imp.KERNEL32.dll_DeleteFileA]
mov esi, dword [sym.imp.KERNEL32.dll_lstrlenA]
push edi
call esi
mov ecx, eax
inc ecx
mov eax, 0x206
cmp ecx, eax
jg 0x4236da
push edi
call esi
inc eax
push eax
push edi
lea eax, [ebp - 0x5c]
push eax
call dword [sym.imp.KERNEL32.dll_lstrcpynA]
mov ebx, dword [ebp + 0x390]
lea eax, [ebp - 0x5c]
push eax
lea eax, [ebp + 0x22c]
push eax
push ebx
push str.____Saving__li_byte_s__to_file___s_:___s_
call fcn.0042036e
add esp, 0x10
test ebx, ebx
jle 0x423a6e
push 0
push 0x80
push 4
push 0
push 3
push 0xc0000000
lea eax, [ebp + 0x22c]
push eax
call fcn.0040f850
push 0
mov esi, eax
lea eax, [ebp - 0x68]
push eax
push ebx
push edi
push esi
call dword [sym.imp.KERNEL32.dll_WriteFile]
mov edi, eax
test esi, esi
je 0x423749
push esi
call dword [sym.imp.KERNEL32.dll_CloseHandle]
test edi, edi
je 0x423756
cmp esi, 0xffffffff
jne 0x423a6e
lea eax, [ebp + 0x22c]
push eax
push ebx
push str.____ERROR_saving__li_byte_s__to_file___s_
call fcn.0042036e
add esp, 0xc
jmp 0x423a6e
mov eax, dword [ebx]
lea eax, [eax + esi + 0xc88]
push str.Excel
push eax
call fcn.004010ff
pop ecx
pop ecx
test eax, eax
je 0x4237d5
push 0x103
lea eax, [ebp + 0x22c]
push eax
push dword [ebp + 0x388]
mov eax, dword [ebx]
push dword [ebp + 0x384]
lea eax, [eax + esi + 0xcc8]
push eax
call fcn.0043db78
mov eax, dword [0x4775e4]
xor ecx, ecx
cmp dword [ebp - 0x64], ecx
jne 0x4237c0
mov eax, dword [ebp - 0x60]
push ecx
push ecx
push ecx
push eax
lea eax, [ebp + 0x22c]
push eax
call fcn.00409b68
jmp 0x423a6e
mov eax, dword [ebx]
lea eax, [eax + esi + 0xc88]
push 0x45e204
push eax
call fcn.004010ff
pop ecx
pop ecx
test eax, eax
jne 0x4239f3
mov eax, dword [ebx]
lea eax, [eax + esi + 0xc88]
push str.Adobe
push eax
call fcn.004010ff
pop ecx
pop ecx
test eax, eax
jne 0x4239f3
mov eax, dword [ebx]
lea eax, [eax + esi + 0xc88]
push str.Output
push eax
call fcn.004010ff
pop ecx
pop ecx
test eax, eax
je 0x42390f
push dword [ebp - 0x60]
mov esi, dword [sym.imp.KERNEL32.dll_lstrlenA]
call esi
mov ecx, eax
inc ecx
mov eax, 0x1e8
cmp ecx, eax
jg 0x42384c
push dword [ebp - 0x60]
call esi
inc eax
push eax
push dword [ebp - 0x60]
lea eax, [ebp - 0x5c]
push eax
call dword [sym.imp.KERNEL32.dll_lstrcpynA]
lea eax, [ebp - 0x5c]
push eax
call esi
cmp eax, 0x1e6
jl 0x423876
push str.______DATA_TRUNCATED_____r_n
lea eax, [ebp - 0x5c]
push eax
call dword [sym.imp.KERNEL32.dll_lstrcatA]
mov esi, dword [sym.imp.KERNEL32.dll_OutputDebugStringA]
mov byte [ebp + 0x22c], 0x78
xor edi, edi
push 0
push 1
push 0xff
lea eax, [ebp + 0x22c]
push eax
push edi
push 0x45984c
lea eax, [ebp - 0x5c]
push eax
call fcn.004432d3
inc edi
cmp byte [ebp + 0x22c], 0
je 0x423a6e
lea eax, [ebp + 0x22c]
mov cl, byte [eax]
test cl, cl
je 0x4238c9
cmp cl, 0xd
jne 0x4238c6
mov byte [eax], 0x20
inc eax
jmp 0x4238b8
lea eax, [ebp + 0x22c]
mov cl, byte [eax]
test cl, cl
je 0x4238e0
cmp cl, 0xa
jne 0x4238dd
mov byte [eax], 0x20
inc eax
jmp 0x4238cf
lea eax, [ebp + 0x22c]
push eax
call fcn.0042036e
pop ecx
lea eax, [ebp + 0x22c]
push eax
call esi
push 0x45b4c0
call esi
cmp byte [ebp + 0x22c], 0
jne 0x423885
jmp 0x423a6e
mov eax, dword [ebx]
lea eax, [eax + esi + 0xc88]
push str.Message
push eax
call fcn.004010ff
pop ecx
pop ecx
test eax, eax
je 0x4239dd
push dword [ebp - 0x60]
mov esi, dword [sym.imp.KERNEL32.dll_lstrlenA]
call esi
mov ecx, eax
inc ecx
mov eax, 0x1e8
cmp ecx, eax
jg 0x42394a
push dword [ebp - 0x60]
call esi
inc eax
push eax
push dword [ebp - 0x60]
lea eax, [ebp - 0x5c]
push eax
call dword [sym.imp.KERNEL32.dll_lstrcpynA]
lea eax, [ebp - 0x5c]
push eax
call esi
cmp eax, 0x1e6
jl 0x423974
push str.______DATA_TRUNCATED____
lea eax, [ebp - 0x5c]
push eax
call dword [sym.imp.KERNEL32.dll_lstrcatA]
mov eax, dword [ebp + 0x388]
inc eax
push eax
lea eax, [ebp + 0x22c]
push str._Step__d__Data_Result___Press_Cancel_to_Stop_
push eax
call dword [sym.imp.USER32.dll_wsprintfA]
add esp, 0xc
push dword [0x472420]
call dword [sym.imp.USER32.dll_IsWindowVisible]
test eax, eax
je 0x4239a8
mov eax, dword [0x472420]
jmp 0x4239ae
call dword [sym.imp.USER32.dll_GetDesktopWindow]
push 0x52001
lea ecx, [ebp + 0x22c]
push ecx
lea ecx, [ebp - 0x5c]
push ecx
push eax
call dword [sym.imp.USER32.dll_MessageBoxA]
cmp eax, 2
jne 0x423a6e
mov dword [0x472698], 1
jmp 0x423a6e
mov eax, dword [ebp + 0x388]
inc eax
push eax
push str.____WARNING:_Invalid__Save_Output__destination_for__Step__d_
call fcn.0042036e
pop ecx
pop ecx
jmp 0x423a6e
push 0x103
lea eax, [ebp + 0x22c]
push eax
push dword [ebp + 0x388]
mov eax, dword [ebx]
push dword [ebp + 0x384]
lea eax, [eax + esi + 0xcc8]
push eax
call fcn.0043db78
mov ecx, dword [0x4775e4]
xor eax, eax
cmp dword [ebp - 0x64], eax
jne 0x423a2a
mov ecx, dword [ebp - 0x60]
fld dword [0x45b4d0]
push eax
push eax
push eax
push eax
push eax
push eax
push eax
push eax
sub esp, 0x10
fstp dword [esp + 0xc]
lea eax, [ebp + 0x22c]
fld dword [0x45b4e0]
fstp dword [esp + 8]
fld dword [0x45b4e4]
fstp dword [esp + 4]
fld1
fstp dword [esp]
push 0xe
push 0x45b4f8
push 1
push ecx
push eax
call fcn.0040792f
lea eax, [ebp - 0x80]
push eax
call dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
lea eax, [ebp - 0x80]
push eax
call dword [sym.imp.KERNEL32.dll_DeleteCriticalSection]
mov ecx, dword [ebp + 0x378]
pop edi
pop esi
xor ecx, ebp
pop ebx
call fcn.004464bf
add ebp, 0x37c
leave
ret 0x10