Function at 0x401000
Capabilities:
Write file on windows

Disassembly:
mov esi, 0
mov eax, 0x36c651
push eax
call fcn.00401a10
mov byte [esi + 0x403300], al
inc esi
cmp esi, 0x7f
jbe 0x401005
mov dword [0x403300], 0
or byte [0x40337f], 0xf0
mov esi, dword [0x403398]
mov edi, 0
xor edx, edx
xor ecx, ecx
xor eax, eax
jmp 0x40106a
mov dl, byte [esi + 0x403300]
mov al, dl
shr al, 4
mov cl, byte [eax + str.0123456789ABCDEF000]
mov byte [edi + 0x40343f], cl
inc edi
mov al, dl
and al, 0xf
mov cl, byte [eax + str.0123456789ABCDEF000]
mov byte [edi + 0x40343f], cl
inc edi
dec esi
cmp dword [0x403398], esi
jb 0x401077
cmp esi, 0
jae 0x401040
push 0
push str._Unsigned__Integer_Square_Root_with_Remainder
push 0x403437
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 [0x4033bc], eax
push 2
push 0
push 0
push dword [0x4033bc]
call sub.kernel32.dll_SetFilePointer
push 0x403437
call sub.kernel32.dll_lstrlenA
push 0
push 0x4033c0
push eax
push 0x403437
push dword [0x4033bc]
call sub.kernel32.dll_WriteFile
push dword [0x4033bc]
call sub.kernel32.dll_CloseHandle
mov esi, 0
mov dword [esi*4 + 0x403300], 0
inc esi
cmp esi, dword [0x403390]
jbe 0x4010ee
push 0x403873
call sub.kernel32.dll_lstrlenA
mov dword [0x403380], eax
dec dword [0x403380]
mov edi, eax
shr edi, 1
dec edi
mov ebx, 0x403ce0
mov esi, 0
jmp 0x401155
mov al, byte [esi + 0x403873]
and al, 0x1f
xlatb
shl al, 4
mov cl, al
inc esi
mov al, byte [esi + 0x403873]
and al, 0x1f
cmp al, 0xf
jbe 0x401147
and al, 0xf
jmp 0x40114b
and al, 0xf
add al, 9
add cl, al
inc esi
mov byte [edi + 0x403300], cl
dec edi
cmp dword [0x403380], esi
jae 0x401128
mov esi, dword [0x403398]
mov edi, 0
xor edx, edx
xor ecx, ecx
xor eax, eax
jmp 0x40119a
mov dl, byte [esi + 0x403300]
mov al, dl
shr al, 4
mov cl, byte [eax + str.0123456789ABCDEF000]
mov byte [edi + 0x403873], cl
inc edi
mov al, dl
and al, 0xf
mov cl, byte [eax + str.0123456789ABCDEF000]
mov byte [edi + 0x403873], cl
inc edi
dec esi
cmp dword [0x403398], esi
jb 0x4011a7
cmp esi, 0
jae 0x401170
push 0
push str._Unsigned__Integer_Square_Root_with_Remainder
push str.Number__FC2FF635A4944FC48431F39294CD9C2840C17453D99B9A55EA89A35385AB4123DC584519335ED60BF66C948F47227EC6DB25C82A16CB41DA272BB0CBA13DCCB32583598563E1FFF110B032A3DD63DC8C28F64CA463B5FB38F743660DFA069FA7D26193E28E07C937728E1630E9A469452810E634B47197B23275238100000000
push 0
call sub.user32.dll_MessageBoxA
mov esi, 0
mov dword [esi*4 + 0x403300], 0
inc esi
cmp esi, dword [0x403390]
jbe 0x4011bf
push 0x403980
call sub.kernel32.dll_lstrlenA
mov dword [0x403380], eax
dec dword [0x403380]
xor eax, eax
mov al, byte [0x403980]
and al, 0xf
add dword [0x403300], eax
mov dword [0x403388], 1
mov esi, 1
jmp 0x40125e
mov eax, esi
and eax, 3
or eax, eax
jne 0x40121f
cmp dword [0x403388], 0x3f
adc dword [0x403388], 0
xor edx, edx
mov dl, byte [esi + 0x403980]
and dl, 0xf
mov edi, 0
xor eax, eax
mov ax, word [edi*2 + 0x403300]
lea eax, [eax + eax*4]
add eax, eax
add eax, edx
mov dword [0x4033a0], eax
mov word [edi*2 + 0x403300], ax
mov dx, word [0x4033a2]
inc edi
cmp edi, dword [0x403388]
jbe 0x40122f
inc esi
cmp dword [0x403380], esi
jae 0x401208
mov esi, dword [0x403398]
mov edi, 0
xor edx, edx
xor ecx, ecx
xor eax, eax
jmp 0x401291
mov dl, byte [esi + 0x403300]
mov cx, word [edx*2 + str.000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F202122232425262728292A2B2C2D2E2F303132333435363738393A3B3C3D3E3F404142434445464748494A4B4C4D4E4F505152535455565758595A5B5C5D5E5F606162636465666768696A6B6C6D6E6F707172737475767778797A7B7C7D7E7F808182838485868788898A8B8C8D8E8F909192939495969798999A9B9C9D9E9FA0A1A2A3A4A5A6A7A8A9AAABACADAEAFB0B1B2B3B4B5B6B7B8B9BABBBCBDBEBFC0C1C2C3C4C5C6C7C8C9CACBCCCDCECFD0D1D2D3D4D5D6D7D8D9DADBDCDDDEDFE0E1E2E3E4E5E6E7E8E9EAEBECEDEEEFF0F1F2F3F4F5F6F7F8F9FAFBFCFDFEFF_t_t_t_t_t_t_t_t_t_t_t_t_t_t_t_t]
mov word [edi*2 + 0x403767], cx
inc edi
dec esi
cmp dword [0x403398], esi
jb 0x40129e
cmp esi, 0
jae 0x401279
push 0
push str._Unsigned__Integer_Square_Root_with_Remainder
push str.Number
push 0
call sub.user32.dll_MessageBoxA
mov esi, 0x1f
mov edx, 0
dec edx
mov edi, dword [esi*4 + 0x403300]
bswap edi
mov ebx, edi
shr edi, 4
and edi, 0xf
mov eax, dword [edi*4 + str.0000000100100011010001010110011110001001101010111100110111101111]
inc edx
mov dword [edx*4 + 0x403d50], eax
mov edi, ebx
and edi, 0xf
mov eax, dword [edi*4 + str.0000000100100011010001010110011110001001101010111100110111101111]
inc edx
mov dword [edx*4 + 0x403d50], eax
mov edi, ebx
shr edi, 0xc
and edi, 0xf
mov eax, dword [edi*4 + str.0000000100100011010001010110011110001001101010111100110111101111]
inc edx
mov dword [edx*4 + 0x403d50], eax
mov edi, ebx
shr edi, 8
and edi, 0xf
mov eax, dword [edi*4 + str.0000000100100011010001010110011110001001101010111100110111101111]
inc edx
mov dword [edx*4 + 0x403d50], eax
mov edi, ebx
shr edi, 0x14
and edi, 0xf
mov eax, dword [edi*4 + str.0000000100100011010001010110011110001001101010111100110111101111]
inc edx
mov dword [edx*4 + 0x403d50], eax
mov edi, ebx
shr edi, 0x10
and edi, 0xf
mov eax, dword [edi*4 + str.0000000100100011010001010110011110001001101010111100110111101111]
inc edx
mov dword [edx*4 + 0x403d50], eax
mov edi, ebx
shr edi, 0x1c
and edi, 0xf
mov eax, dword [edi*4 + str.0000000100100011010001010110011110001001101010111100110111101111]
inc edx
mov dword [edx*4 + 0x403d50], eax
mov edi, ebx
shr edi, 0x18
and edi, 0xf
mov eax, dword [edi*4 + str.0000000100100011010001010110011110001001101010111100110111101111]
inc edx
mov dword [edx*4 + 0x403d50], eax
dec esi
cmp esi, 0x1f
jbe 0x4012bc
push 0
push str._Unsigned__Integer_Square_Root_with_Remainder
push 0x403d50
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 [0x4033bc], eax
push 2
push 0
push 0
push dword [0x4033bc]
call sub.kernel32.dll_SetFilePointer
push str.Number
call sub.kernel32.dll_lstrlenA
push 0
push 0x4033c0
push eax
push str.Number
push dword [0x4033bc]
call sub.kernel32.dll_WriteFile
push dword [0x4033bc]
call sub.kernel32.dll_CloseHandle
jmp 0x401754
mov ecx, dword [0x403394]
xor eax, eax
mov dword [ecx*4 + section..data], eax
mov dword [ecx*4 + 0x403080], eax
loop 0x401403
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 [0x403398]
jbe 0x401423
dec edi
cmp byte [edi + 0x403100], 0
jne 0x401484
dec edi
cmp byte [edi + 0x403100], 0
jne 0x401484
dec edi
cmp byte [edi + 0x403100], 0
jne 0x401484
dec edi
mov dword [0x4033a8], edi
mov dword [0x4033a4], edi
mov ecx, edi
cmp edi, 0x1e
jae 0x4014a8
mov dword [0x4033ac], 0
mov esi, 0
jmp 0x4014b3
mov esi, edi
sub esi, 0x1d
mov dword [0x4033ac], esi
jmp 0x4014eb
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 0x4014ea
inc edx
sub dword [0x403080], edx
add dword [section..data], 2
dec ecx
cmp edi, ecx
jb 0x4014f3
cmp ecx, esi
jae 0x4014b5
mov dword [0x4033a4], ecx
cmp edi, 0x1e
jae 0x401508
mov dword [0x4033a4], 0xffffffff
jmp 0x4015e9
mov edx, dword [0x403394]
dec edx
mov ecx, dword [0x403394]
mov eax, dword [edx*4 + section..data]
shld dword [ecx*4 + section..data], eax, 1
dec edx
loop 0x40151a
shl dword [section..data], 1
mov edx, dword [0x403394]
dec edx
mov ecx, dword [0x403394]
mov eax, dword [edx*4 + 0x403080]
shld dword [ecx*4 + 0x403080], eax, 2
dec edx
loop 0x401540
shl dword [0x403080], 2
mov ecx, dword [0x4033a4]
mov al, byte [ecx + 0x403100]
add byte [0x403080], al
mov eax, 2
mov ecx, dword [0x403394]
inc ecx
mov edx, dword [0x403394]
mov esi, dword [edx*4 + section..data]
mov edi, dword [edx*4 + 0x403080]
cmp esi, edi
jbe 0x401597
mov eax, 3
jmp 0x4015a0
cmp esi, edi
jae 0x4015a0
mov eax, 1
dec edx
cmp eax, 2
loope 0x40157e
cmp eax, 1
jne 0x4015e3
mov esi, 0
stc
setb byte [0x40338c]
mov eax, dword [esi*4 + section..data]
add eax, dword [0x40338c]
sub dword [esi*4 + 0x403080], eax
setb byte [0x40338c]
inc esi
cmp esi, dword [0x403394]
jbe 0x4015b8
add dword [section..data], 2
dec dword [0x4033a4]
cmp dword [0x4033a4], 0xfffffff0
jb 0x40150d
mov edx, 0
mov ecx, 1
jmp 0x401614
mov eax, dword [ecx*4 + section..data]
shrd dword [edx*4 + section..data], eax, 1
inc edx
inc ecx
cmp edx, dword [0x403394]
jbe 0x401602
cmp dword [0x403080], 0
jne 0x40174e
xor edx, edx
mov eax, dword [section..data]
mul dword [section..data]
cmp eax, dword [0x403300]
jne 0x40174e
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 0x40174e
or eax, eax
jne 0x40174e
mov dword [0x40339c], 1
mov dword [str.Root], 0x54525153
mov esi, dword [0x403398]
inc esi
shr esi, 1
mov edi, 0
xor edx, edx
xor ecx, ecx
xor eax, eax
jmp 0x4016ce
mov dl, byte [esi + section..data]
mov al, dl
shr al, 4
mov cl, byte [eax + str.0123456789ABCDEF000]
mov byte [edi + 0x40354b], cl
inc edi
mov al, dl
and al, 0xf
mov cl, byte [eax + str.0123456789ABCDEF000]
mov byte [edi + 0x40354b], cl
inc edi
dec esi
cmp dword [0x403398], esi
jb 0x4016db
cmp esi, 0
jae 0x4016a4
push 0
push str._Unsigned__Integer_Square_Root_with_Remainder
push str.Root
push 0
call sub.user32.dll_MessageBoxA
mov esi, dword [0x403398]
inc esi
shr esi, 1
mov edi, 0
xor edx, edx
xor ecx, ecx
xor eax, eax
jmp 0x40172e
mov dl, byte [esi + 0x403080]
mov al, dl
shr al, 4
mov cl, byte [eax + str.0123456789ABCDEF000]
mov byte [edi + 0x40365b], cl
inc edi
mov al, dl
and al, 0xf
mov cl, byte [eax + str.0123456789ABCDEF000]
mov byte [edi + 0x40365b], cl
inc edi
dec esi
cmp dword [0x403398], esi
jb 0x40173b
cmp esi, 0
jae 0x401704
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], 0x64
jb 0x4013fb
push dword [0x403300]
push str._lu_iterations
push 0x403415
call sub.user32.dll_wsprintfA
add esp, 0xc
push 0
push str._Unsigned__Integer_Square_Root_with_Remainder
push 0x403415
push 0
call sub.user32.dll_MessageBoxA
dec dword [0x403300]
mov esi, dword [0x403398]
mov edi, 0
xor edx, edx
xor ecx, ecx
xor eax, eax
jmp 0x4017cf
mov dl, byte [esi + 0x403300]
mov al, dl
shr al, 4
mov cl, byte [eax + str.0123456789ABCDEF000]
mov byte [edi + 0x40343f], cl
inc edi
mov al, dl
and al, 0xf
mov cl, byte [eax + str.0123456789ABCDEF000]
mov byte [edi + 0x40343f], cl
inc edi
dec esi
cmp dword [0x403398], esi
jb 0x4017dc
cmp esi, 0
jae 0x4017a5
push 0
push str._Unsigned__Integer_Square_Root_with_Remainder
push 0x403437
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 [0x4033bc], eax
push 2
push 0
push 0
push dword [0x4033bc]
call sub.kernel32.dll_SetFilePointer
push 0x403437
call sub.kernel32.dll_lstrlenA
push 0
push 0x4033c0
push eax
push 0x403437
push dword [0x4033bc]
call sub.kernel32.dll_WriteFile
push dword [0x4033bc]
call sub.kernel32.dll_CloseHandle
mov esi, dword [0x403398]
inc esi
shr esi, 1
dec esi
mov edi, 0
xor edx, edx
xor ecx, ecx
xor eax, eax
jmp 0x40188f
mov dl, byte [esi + section..data]
mov al, dl
shr al, 4
mov cl, byte [eax + str.0123456789ABCDEF000]
mov byte [edi + 0x40354b], cl
inc edi
mov al, dl
and al, 0xf
mov cl, byte [eax + str.0123456789ABCDEF000]
mov byte [edi + 0x40354b], cl
inc edi
dec esi
cmp dword [0x403398], esi
jb 0x40189c
cmp esi, 0
jae 0x401865
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 [0x4033bc], eax
push 2
push 0
push 0
push dword [0x4033bc]
call sub.kernel32.dll_SetFilePointer
push str.Root
call sub.kernel32.dll_lstrlenA
push 0
push 0x4033c0
push eax
push str.Root
push dword [0x4033bc]
call sub.kernel32.dll_WriteFile
push dword [0x4033bc]
call sub.kernel32.dll_CloseHandle
mov esi, dword [0x403398]
inc esi
shr esi, 1
dec esi
mov edi, 0
xor edx, edx
xor ecx, ecx
xor eax, eax
jmp 0x40194f
mov dl, byte [esi + 0x403080]
mov al, dl
shr al, 4
mov cl, byte [eax + str.0123456789ABCDEF000]
mov byte [edi + 0x40365b], cl
inc edi
mov al, dl
and al, 0xf
mov cl, byte [eax + str.0123456789ABCDEF000]
mov byte [edi + 0x40365b], cl
inc edi
dec esi
cmp dword [0x403398], esi
jb 0x40195c
cmp esi, 0
jae 0x401925
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 [0x4033bc], eax
push 2
push 0
push 0
push dword [0x4033bc]
call sub.kernel32.dll_SetFilePointer
push str.Remainder
call sub.kernel32.dll_lstrlenA
push 0
push 0x4033c0
push eax
push str.Remainder
push dword [0x4033bc]
call sub.kernel32.dll_WriteFile
push dword [0x4033bc]
call sub.kernel32.dll_CloseHandle
push 0
call sub.kernel32.dll_ExitProcess
int3