Function at 0x50bb00
Capabilities:
Write file on windows

Disassembly:
push ebp
mov ebp, esp
mov eax, 0x3f60
call fcn.004bdf20
mov eax, dword [0x5be9a0]
xor eax, ebp
mov dword [ebp - 8], eax
mov eax, dword [ebp + 8]
push ebx
mov ebx, dword [ebp + 0x18]
push esi
mov esi, dword [ebp + 0x1c]
push edi
mov edi, dword [ebp + 0x20]
push str.building_initial_matrix_n
push eax
mov dword [ebp - 0x3f34], eax
mov dword [ebp - 0x3f2c], ecx
mov dword [ebp - 0x3f18], edx
mov dword [ebp - 0x3f3c], esi
mov dword [ebp - 0x3f30], edi
call fcn.00410350
mov eax, dword [ebp + 0x14]
add eax, 0x1f
shr eax, 5
add esp, 8
mov dword [ebp - 0x3f24], eax
cmp eax, 0x20
jbe 0x50bb7a
push str.error:_too_many_dense_rows_n
call fcn.004b7f6d
add esp, 4
push 0xffffffffffffffff
call fcn.004b856d
mov dword [ebp - 0x3f20], 0
test esi, esi
je 0x50bb95
lea eax, [esi + esi*2]
mov ecx, dword [ebx + eax*4 - 0xc]
mov dword [ebp - 0x3f20], ecx
xor eax, eax
lea ecx, [eax + 3]
lea esi, [ebp - 0x3f60]
call fcn.004e6040
push 0
push 0xc
push edi
call fcn.004bab72
xor eax, eax
add esp, 0xc
mov dword [ebp - 0x3f10], eax
cmp dword [ebp + 0xc], eax
jbe 0x50bd79
jmp 0x50bbd0
mov ecx, dword [ebp - 0x3f24]
shl eax, 4
add eax, dword [ebp - 0x3f2c]
mov esi, eax
test ecx, ecx
je 0x50bbf5
xor eax, eax
lea edi, [ebp - 0x8c]
rep stosd dword es:[edi], eax
mov edi, dword [ebp - 0x3f30]
mov edx, dword [ebp + 0x14]
mov ecx, dword [ebp - 0x3f18]
push edx
lea eax, [ebp - 0x2f6c]
push eax
push ecx
lea edx, [ebp - 0x8c]
mov ecx, esi
call fcn.0050b820
xor ecx, ecx
add esp, 0xc
mov dword [ebp - 0x3f1c], eax
mov dword [ebp - 0x3f14], ecx
mov dword [ebp - 0x3f28], ecx
cmp eax, ecx
jbe 0x50bd23
lea edi, [ebp - 0x2f6c]
lea esp, [esp]
mov dx, word [edi + 8]
mov eax, 0x7fff
and dx, ax
movzx eax, dx
xor esi, esi
cdq
xor ecx, ecx
or ecx, dword [edi]
or eax, esi
mov esi, dword [ebp - 0x3f20]
test esi, esi
je 0x50bccc
cmp ecx, 0xffffffff
jne 0x50bc6e
cmp eax, 0x7fff
je 0x50bc7a
xor edx, edx
cmp eax, edx
ja 0x50bccc
jb 0x50bc7a
cmp ecx, esi
ja 0x50bccc
mov eax, dword [ebp - 0x3f3c]
push fcn.0050b530
push 0xc
push eax
push ebx
push edi
call fcn.004bc41b
mov esi, eax
mov ecx, esi
sub ecx, ebx
mov eax, 0x2aaaaaab
imul ecx
sar edx, 1
mov ecx, edx
shr ecx, 0x1f
add esp, 0x14
lea ecx, [edx + ecx + 0x15]
test esi, esi
je 0x50beb6
mov edx, ecx
shr edx, 5
lea eax, [ebp + edx*4 - 0x8c]
and ecx, 0x1f
mov edx, 1
shl edx, cl
or dword [eax], edx
jmp 0x50bd01
push 0
lea eax, [ebp - 0x3f38]
push eax
push edi
lea esi, [ebp - 0x3f60]
call fcn.004e5cf0
mov edx, dword [ebp - 0x3f38]
add edx, dword [ebp + 0x14]
mov eax, dword [ebp - 0x3f14]
add esp, 0xc
mov dword [ebp + eax*4 - 0x3f0c], edx
inc eax
mov dword [ebp - 0x3f14], eax
mov eax, dword [ebp - 0x3f28]
inc eax
add edi, 0xc
mov dword [ebp - 0x3f28], eax
cmp eax, dword [ebp - 0x3f1c]
jb 0x50bc40
mov edi, dword [ebp - 0x3f30]
push edi
push 1
lea eax, [ebp - 0x3f14]
push 4
push eax
call fcn.004b9a51
mov ecx, dword [ebp - 0x3f14]
push edi
push ecx
lea edx, [ebp - 0x3f0c]
push 4
push edx
call fcn.004b9a51
mov eax, dword [ebp - 0x3f24]
push edi
push eax
lea ecx, [ebp - 0x8c]
push 4
push ecx
call fcn.004b9a51
mov eax, dword [ebp - 0x3f10]
inc eax
add esp, 0x30
mov dword [ebp - 0x3f10], eax
cmp eax, dword [ebp + 0xc]
jb 0x50bbd0
mov edx, dword [ebp + 0x14]
mov eax, dword [ebp - 0x3f44]
lea ecx, [eax + edx - 1]
push edi
mov dword [ebp - 0x3f10], ecx
call fcn.004ba5eb
add esp, 4
push edi
push 1
lea edx, [ebp - 0x3f10]
push 4
push edx
call fcn.004b9a51
push edi
push 1
lea eax, [ebp + 0x14]
push 4
push eax
call fcn.004b9a51
push edi
push 1
lea ecx, [ebp + 0xc]
push 4
push ecx
call fcn.004b9a51
mov eax, dword [ebp - 0x3f60]
mov edx, dword [ebp + 0xc]
mov esi, dword [ebp + 0x10]
inc eax
imul eax, dword [ebp - 0x3f40]
lea ecx, [eax + edx*4]
lea eax, [esi + esi*2]
lea eax, [ecx + eax*2]
mov ecx, dword [ebp - 0x3f54]
mov edi, 4
shl edi, cl
xor ecx, ecx
add esp, 0x30
mov dword [ebp - 0x3f10], ecx
lea eax, [edi + eax*4]
test edx, edx
je 0x50be1c
mov edi, edi
mov ebx, dword [ebp - 0x3f2c]
mov edi, ecx
add edi, edi
mov edi, dword [ebx + edi*8 + 8]
inc ecx
lea eax, [eax + edi*4]
mov dword [ebp - 0x3f10], ecx
cmp ecx, edx
jb 0x50be00
xor ecx, ecx
mov dword [ebp - 0x3f10], ecx
test esi, esi
je 0x50be54
jmp 0x50be30
mov edi, dword [ebp - 0x3f18]
lea edx, [ecx + ecx*2]
lea edx, [edi + edx*8]
movzx edi, byte [edx + 0x11]
movzx edx, byte [edx + 0x10]
inc ecx
add edi, edx
lea eax, [eax + edi*4]
mov dword [ebp - 0x3f10], ecx
cmp ecx, esi
jb 0x50be30
mov dword [ebp - 0x3f1c], eax
fild dword [ebp - 0x3f1c]
test eax, eax
jns 0x50be6a
fadd qword [0x5b4428]
fmul qword [0x5b4730]
mov eax, dword [ebp - 0x3f34]
sub esp, 8
fstp qword [esp]
push str.memory_use:__.1f_MB_n
push eax
call fcn.00410350
mov ecx, dword [ebp - 0x3f58]
push ecx
call fcn.004b7229
mov edx, dword [ebp - 0x3f48]
add esp, 0x14
push edx
call fcn.004b7229
mov ecx, dword [ebp - 8]
add esp, 4
pop edi
pop esi
xor ecx, ebp
pop ebx
call fcn.004bc40c
mov esp, ebp
pop ebp
ret
push str.error:_unexpected_dense_ideal_found_n
call fcn.004b7f6d
add esp, 4
push 0xffffffffffffffff
call fcn.004b856d
int3