Function at 0x401000
Capabilities:
Write file on windows

Disassembly:
mov esi, 0
mov eax, 0x36c651
push eax
call fcn.00401b20
mov byte [esi + 0x403300], al
inc esi
cmp esi, 0x7f
jbe 0x401005
mov dword [0x403300], 0
or byte [0x40337f], 0xf0
jmp 0x4013fb
jmp 0x401860
mov ecx, dword [0x403394]
xor eax, eax
mov dword [ecx*4 + section..data], eax
mov dword [ecx*4 + 0x403080], eax
dec edx
loop 0x401408
mov dword [section..data], eax
mov dword [0x403080], eax
xor esi, esi
xor edi, edi
xor eax, eax
mov dl, byte [esi + 0x403300]
mov al, dl
and al, 3
mov byte [edi + 0x403100], al
inc edi
mov al, dl
shr al, 2
and al, 3
mov byte [edi + 0x403100], al
inc edi
mov al, dl
shr al, 4
and al, 3
mov byte [edi + 0x403100], al
inc edi
mov al, dl
shr al, 6
mov byte [edi + 0x403100], al
inc edi
inc esi
cmp esi, dword [0x40339c]
jbe 0x401429
dec edi
cmp byte [edi + 0x403100], 0
jne 0x40148a
dec edi
cmp byte [edi + 0x403100], 0
jne 0x40148a
dec edi
cmp byte [edi + 0x403100], 0
jne 0x40148a
dec edi
mov ecx, edi
mov dword [0x4033a8], edi
mov dword [0x4033a4], edi
cmp edi, 0x1e
jae 0x4014a4
mov esi, 0
jmp 0x4014a9
mov esi, edi
sub esi, 0x1d
mov al, byte [ecx + 0x403100]
mov dword [section..data], 2
dec ecx
dec eax
mov dword [0x403080], eax
jmp 0x4014f8
shl dword [section..data], 1
shl dword [0x403080], 2
mov al, byte [ecx + 0x403100]
add byte [0x403080], al
mov edx, dword [section..data]
cmp edx, dword [0x403080]
jae 0x4014f7
inc edx
sub dword [0x403080], edx
add dword [section..data], 2
dec ecx
cmp edi, ecx
jb 0x401500
cmp ecx, esi
jae 0x4014c2
mov dword [0x4033a4], ecx
cmp edi, 0x1e
jae 0x401515
mov dword [0x4033a4], 0xffffffff
cmp edi, 0x1e
jb 0x4015e7
cmp edi, 0x3e
jae 0x40152a
mov esi, 0x1e
jmp 0x401533
mov esi, dword [0x4033a4]
sub esi, 0x20
jmp 0x4015d5
mov eax, dword [section..data]
shld dword [0x403004], eax, 1
shl dword [section..data], 1
mov eax, dword [0x403080]
shld dword [0x403084], eax, 2
shl dword [0x403080], 2
mov al, byte [ecx + 0x403100]
add byte [0x403080], al
mov ebx, dword [0x403084]
mov eax, dword [0x403004]
mov dword [0x4033a0], 2
cmp eax, ebx
jae 0x401590
mov dword [0x4033a0], 1
jmp 0x4015ab
cmp eax, ebx
jne 0x4015ab
mov eax, dword [section..data]
cmp eax, dword [0x403080]
jae 0x4015ab
mov dword [0x4033a0], 1
cmp dword [0x4033a0], 1
jne 0x4015d4
mov edx, dword [section..data]
inc edx
sub dword [0x403080], edx
mov edx, dword [0x403004]
sbb dword [0x403084], edx
add dword [section..data], 2
dec ecx
cmp edi, ecx
jb 0x4015e1
cmp ecx, esi
jae 0x401538
mov dword [0x4033a4], ecx
mov dword [0x403398], 2
jmp 0x4016f5
mov edx, dword [0x4033a8]
sub edx, dword [0x4033a4]
inc edx
inc edx
and edx, 0x1f
or edx, edx
jne 0x401611
inc dword [0x403398]
mov edx, dword [0x403394]
cmp dword [0x403398], edx
jbe 0x401625
mov dword [0x403398], edx
mov edx, dword [0x403398]
mov ecx, dword [0x403398]
dec edx
mov eax, dword [edx*4 + section..data]
mov ebx, dword [edx*4 + 0x403080]
shld dword [ecx*4 + section..data], eax, 1
shld dword [ecx*4 + 0x403080], ebx, 2
dec edx
loop 0x401632
shl dword [section..data], 1
shl dword [0x403080], 2
mov ecx, dword [0x4033a4]
mov al, byte [ecx + 0x403100]
add byte [0x403080], al
mov eax, 2
mov ecx, dword [0x403398]
mov edx, dword [0x403398]
inc ecx
mov esi, dword [edx*4 + section..data]
mov edi, dword [edx*4 + 0x403080]
cmp esi, edi
jbe 0x40169f
mov eax, 3
jmp 0x4016a8
cmp esi, edi
jae 0x4016a8
mov eax, 1
dec edx
cmp eax, 2
loope 0x401686
cmp eax, 1
jne 0x4016ef
mov esi, 0
mov edi, dword [0x403398]
mov dword [0x40338c], 1
mov eax, dword [esi*4 + section..data]
add eax, dword [0x40338c]
sub dword [esi*4 + 0x403080], eax
setb byte [0x40338c]
inc esi
cmp esi, edi
jbe 0x4016c8
add dword [section..data], 2
dec dword [0x4033a4]
cmp dword [0x4033a4], 0xfffffff0
jb 0x4015f6
mov edx, 0
mov ecx, 1
jmp 0x401720
mov eax, dword [ecx*4 + section..data]
shrd dword [edx*4 + section..data], eax, 1
inc edx
inc ecx
cmp edx, dword [0x403394]
jbe 0x40170e
cmp dword [0x403080], 0
jne 0x40185a
xor edx, edx
mov eax, dword [section..data]
mul dword [section..data]
cmp eax, dword [0x403300]
jne 0x40185a
xor edx, edx
xor eax, eax
add eax, dword [0x403080]
adc edx, 0
add eax, dword [0x403084]
adc edx, 0
add eax, dword [0x403088]
adc edx, 0
add eax, dword [0x40308c]
adc edx, 0
or edx, edx
jne 0x40185a
or eax, eax
jne 0x40185a
mov dword [0x4033b0], 1
mov dword [str.Root], 0x54525153
mov esi, dword [0x40339c]
inc esi
shr esi, 1
mov edi, 0
xor edx, edx
xor ecx, ecx
xor eax, eax
jmp 0x4017da
mov dl, byte [esi + section..data]
mov al, dl
shr al, 4
mov cl, byte [eax + str.0123456789ABCDEF000]
mov byte [edi + 0x40355b], cl
inc edi
mov al, dl
and al, 0xf
mov cl, byte [eax + str.0123456789ABCDEF000]
mov byte [edi + 0x40355b], cl
inc edi
dec esi
cmp dword [0x40339c], esi
jb 0x4017e7
cmp esi, 0
jae 0x4017b0
push 0
push str._Unsigned__Integer_Square_Root_with_Remainder
push str.Root
push 0
call sub.user32.dll_MessageBoxA
mov esi, dword [0x40339c]
inc esi
shr esi, 1
mov edi, 0
xor edx, edx
xor ecx, ecx
xor eax, eax
jmp 0x40183a
mov dl, byte [esi + 0x403080]
mov al, dl
shr al, 4
mov cl, byte [eax + str.0123456789ABCDEF000]
mov byte [edi + 0x40366b], cl
inc edi
mov al, dl
and al, 0xf
mov cl, byte [eax + str.0123456789ABCDEF000]
mov byte [edi + 0x40366b], cl
inc edi
dec esi
cmp dword [0x40339c], esi
jb 0x401847
cmp esi, 0
jae 0x401810
push 0
push str._Unsigned__Integer_Square_Root_with_Remainder
push str.Remainder
push 0
call sub.user32.dll_MessageBoxA
inc dword [0x403300]
cmp dword [0x403300], 0xf4240
jb 0x401400
push dword [0x403300]
push str._lu_iterations
push 0x403425
call sub.user32.dll_wsprintfA
add esp, 0xc
push 0
push str._Unsigned__Integer_Square_Root_with_Remainder
push 0x403425
push 0
call sub.user32.dll_MessageBoxA
dec dword [0x403300]
mov esi, dword [0x40339c]
mov edi, 0
xor edx, edx
xor ecx, ecx
xor eax, eax
jmp 0x4018de
mov dl, byte [esi + 0x403300]
mov al, dl
shr al, 4
mov cl, byte [eax + str.0123456789ABCDEF000]
mov byte [edi + 0x40344f], cl
inc edi
mov al, dl
and al, 0xf
mov cl, byte [eax + str.0123456789ABCDEF000]
mov byte [edi + 0x40344f], cl
inc edi
dec esi
cmp dword [0x40339c], esi
jb 0x4018eb
cmp esi, 0
jae 0x4018b4
push 0
push str._Unsigned__Integer_Square_Root_with_Remainder
push 0x403447
push 0
call sub.user32.dll_MessageBoxA
push 0
push 0x80
push 4
push 0
push 1
push 0x40000000
push str.SqRtHex.log
call sub.kernel32.dll_CreateFileA
mov dword [0x4033cc], eax
push 2
push 0
push 0
push dword [0x4033cc]
call sub.kernel32.dll_SetFilePointer
push 0x403447
call sub.kernel32.dll_lstrlenA
push 0
push 0x4033d0
push eax
push 0x403447
push dword [0x4033cc]
call sub.kernel32.dll_WriteFile
push dword [0x4033cc]
call fcn.00401ae4
mov esi, dword [0x40339c]
inc esi
shr esi, 1
dec esi
mov edi, 0
xor edx, edx
xor ecx, ecx
xor eax, eax
jmp 0x40199e
mov dl, byte [esi + section..data]
mov al, dl
shr al, 4
mov cl, byte [eax + str.0123456789ABCDEF000]
mov byte [edi + 0x40355b], cl
inc edi
mov al, dl
and al, 0xf
mov cl, byte [eax + str.0123456789ABCDEF000]
mov byte [edi + 0x40355b], cl
inc edi
dec esi
cmp dword [0x40339c], esi
jb 0x4019ab
cmp esi, 0
jae 0x401974
push 0
push str._Unsigned__Integer_Square_Root_with_Remainder
push str.Root
push 0
call sub.user32.dll_MessageBoxA
push 0
push 0x80
push 4
push 0
push 1
push 0x40000000
push str.SqRtHex.log
call sub.kernel32.dll_CreateFileA
mov dword [0x4033cc], eax
push 2
push 0
push 0
push dword [0x4033cc]
call sub.kernel32.dll_SetFilePointer
push str.Root
call sub.kernel32.dll_lstrlenA
push 0
push 0x4033d0
push eax
push str.Root
push dword [0x4033cc]
call sub.kernel32.dll_WriteFile
push dword [0x4033cc]
call fcn.00401ae4
mov esi, dword [0x40339c]
inc esi
shr esi, 1
dec esi
mov edi, 0
xor edx, edx
xor ecx, ecx
xor eax, eax
jmp 0x401a5e
mov dl, byte [esi + 0x403080]
mov al, dl
shr al, 4
mov cl, byte [eax + str.0123456789ABCDEF000]
mov byte [edi + 0x40366b], cl
inc edi
mov al, dl
and al, 0xf
mov cl, byte [eax + str.0123456789ABCDEF000]
mov byte [edi + 0x40366b], cl
inc edi
dec esi
cmp dword [0x40339c], esi
jb 0x401a6b
cmp esi, 0
jae 0x401a34
push 0
push str._Unsigned__Integer_Square_Root_with_Remainder
push str.Remainder
push 0
call sub.user32.dll_MessageBoxA
push 0
push 0x80
push 4
push 0
push 1
push 0x40000000
push str.SqRtHex.log
call sub.kernel32.dll_CreateFileA
mov dword [0x4033cc], eax
push 2
push 0
push 0
push dword [0x4033cc]
call sub.kernel32.dll_SetFilePointer
push str.Remainder
call sub.kernel32.dll_lstrlenA
push 0
push 0x4033d0
push eax
push str.Remainder
push dword [0x4033cc]
call sub.kernel32.dll_WriteFile
push dword [0x4033cc]
call fcn.00401ae4
push 0
call sub.kernel32.dll_ExitProcess