Function at 0x51fa30
Capabilities:
Write file on windows

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x130
mov eax, dword [0x6dd8d0]
xor eax, ebp
mov dword [ebp - 4], eax
push esi
mov esi, dword [ebp + 8]
mov ecx, 0x6d3250
push edi
push 0x77d
call fcn.0046c860
test eax, eax
je 0x51fa71
cvttss2si ecx, dword [eax + 0x898]
mov dword [ebp - 0x24], ecx
cvttss2si eax, dword [eax + 0x89c]
mov dword [ebp - 0x20], eax
push 0x84d
mov ecx, 0x6d3250
call fcn.0046c860
test eax, eax
je 0x51faa5
cvttss2si ecx, dword [eax + 0x898]
mov dword [ebp - 0x14], ecx
cvttss2si ecx, dword [eax + 0x89c]
mov dword [ebp - 0x10], ecx
xor ecx, ecx
cmp dword [eax + 0x24], ecx
setne cl
mov dword [ebp - 0xc], ecx
push 0x1db
mov ecx, 0x6d3250
call fcn.0046c860
test eax, eax
je 0x51fae2
cvttss2si ecx, dword [eax + 0x898]
mov dword [ebp - 0x124], ecx
cvttss2si ecx, dword [eax + 0x89c]
mov dword [ebp - 0x120], ecx
xor ecx, ecx
cmp dword [eax + 0x10], ecx
setne cl
mov dword [ebp - 0x11c], ecx
push 0x491
mov ecx, 0x6d3250
call fcn.0046c860
test eax, eax
je 0x51fb1f
cvttss2si ecx, dword [eax + 0x898]
mov dword [ebp - 0x114], ecx
cvttss2si ecx, dword [eax + 0x89c]
mov dword [ebp - 0x110], ecx
xor ecx, ecx
cmp dword [eax + 0x10], ecx
setne cl
mov dword [ebp - 0x10c], ecx
push 0xed
mov ecx, 0x6d3250
call fcn.0046c860
test eax, eax
je 0x51fb6e
cvttss2si ecx, dword [eax + 0x898]
mov dword [ebp - 0xe4], ecx
cvttss2si ecx, dword [eax + 0x89c]
mov dword [ebp - 0xe0], ecx
xor ecx, ecx
cmp dword [eax + 0x10], ecx
setne cl
mov dword [ebp - 0xdc], ecx
cmp dword [eax + 0x9fc], 0
je 0x51fb6e
or ecx, 2
mov dword [ebp - 0xdc], ecx
push 0x124
mov ecx, 0x6d3250
call fcn.0046c860
test eax, eax
je 0x51fbc7
xor ecx, ecx
cmp dword [eax + 0x10], ecx
setne cl
mov dword [ebp - 0xcc], ecx
mov edx, dword [eax + 0x2bde0]
cmp edx, 1
jne 0x51fb9f
or ecx, 4
jmp 0x51fbb1
cmp edx, 2
jne 0x51fba9
or ecx, 8
jmp 0x51fbb1
cmp edx, 4
jne 0x51fbb7
or ecx, 0x10
mov dword [ebp - 0xcc], ecx
mov ecx, eax
call fcn.004f77b0
movzx eax, al
mov dword [ebp - 0xc8], eax
push 0x5d0
mov ecx, 0x6d3250
call fcn.0046c860
test eax, eax
je 0x51fc04
cmp dword [eax + 0x10], 0
je 0x51fbec
or dword [ebp - 0xcc], 0x100
jmp 0x51fc04
mov eax, dword [ebp - 0xcc]
test eax, 0x100
je 0x51fc04
xor eax, 0x100
mov dword [ebp - 0xcc], eax
push 0xf3
mov ecx, 0x6d3250
call fcn.0046c860
test eax, eax
je 0x51fc66
cvttss2si ecx, dword [eax + 0x898]
mov dword [ebp - 0xc4], ecx
cvttss2si ecx, dword [eax + 0x89c]
mov dword [ebp - 0xc0], ecx
xor ecx, ecx
cmp dword [eax + 0x10], ecx
setne cl
mov dword [ebp - 0xbc], ecx
mov al, byte [eax + 0x957]
cmp al, 1
jne 0x51fc50
or ecx, 4
jmp 0x51fc60
cmp al, 2
jne 0x51fc59
or ecx, 8
jmp 0x51fc60
cmp al, 3
jne 0x51fc66
or ecx, 0x10
mov dword [ebp - 0xbc], ecx
push 0x61
mov ecx, 0x6d3250
call fcn.0046c860
test eax, eax
je 0x51fca0
cvttss2si ecx, dword [eax + 0x898]
mov dword [ebp - 0xb4], ecx
cvttss2si ecx, dword [eax + 0x89c]
mov dword [ebp - 0xb0], ecx
xor ecx, ecx
cmp dword [eax + 0x10], ecx
setne cl
mov dword [ebp - 0xac], ecx
push 0xc7
mov ecx, 0x6d3250
call fcn.0046c860
mov edx, eax
test edx, edx
je 0x51fd30
cvttss2si ecx, dword [edx + 0x898]
mov dword [ebp - 0xa4], ecx
cvttss2si ecx, dword [edx + 0x89c]
mov dword [ebp - 0xa0], ecx
xor ecx, ecx
cmp dword [edx + 0x10], ecx
setne cl
mov dword [ebp - 0x9c], ecx
cmp byte [edx + 0x957], 1
jne 0x51fd1e
mov eax, dword [0x6f1d0c]
or ecx, 4
mov dword [ebp - 0x9c], ecx
mov al, byte [eax + 0x957]
cmp al, 1
jne 0x51fd05
or ecx, 0x20
jmp 0x51fd18
cmp al, 2
jne 0x51fd0e
or ecx, 0x40
jmp 0x51fd18
cmp al, 3
jne 0x51fd1e
or ecx, 0x80
mov dword [ebp - 0x9c], ecx
mov eax, dword [edx + 0x960]
mov eax, dword [eax + 0x9e4]
mov dword [ebp - 0x98], eax
push 0x350
mov ecx, 0x6d3250
call fcn.0046c860
test eax, eax
je 0x51fda3
cvttss2si ecx, dword [eax + 0x898]
mov dword [ebp - 0x94], ecx
cvttss2si ecx, dword [eax + 0x89c]
mov dword [ebp - 0x90], ecx
xor ecx, ecx
cmp dword [eax + 0x10], ecx
setne cl
mov dword [ebp - 0x8c], ecx
cmp byte [eax + 0x957], 1
jne 0x51fd7f
or ecx, 4
mov dword [ebp - 0x8c], ecx
cmp byte [eax + 0x957], 2
jne 0x51fd91
or ecx, 8
mov dword [ebp - 0x8c], ecx
cmp byte [eax + 0x957], 3
jne 0x51fda3
or ecx, 0x10
mov dword [ebp - 0x8c], ecx
push 0x510
mov ecx, 0x6d3250
call fcn.0046c860
test eax, eax
je 0x51fdda
cvttss2si ecx, dword [eax + 0x898]
mov dword [ebp - 0x84], ecx
cvttss2si ecx, dword [eax + 0x89c]
mov dword [ebp - 0x80], ecx
xor ecx, ecx
cmp dword [eax + 0x10], ecx
setne cl
mov dword [ebp - 0x7c], ecx
push 0x4a8
mov ecx, 0x6d3250
call fcn.0046c860
test eax, eax
je 0x51fe23
cvttss2si ecx, dword [eax + 0x898]
mov dword [ebp - 0x74], ecx
cvttss2si ecx, dword [eax + 0x89c]
mov dword [ebp - 0x70], ecx
cmp dword [eax + 0x10], 0
je 0x51fe1c
mov dword [ebp - 0x6c], 1
mov dword [0x70e0d8], 1
jmp 0x51fe23
mov dword [ebp - 0x6c], 0
push 0x214
mov ecx, 0x6d3250
call fcn.0046c860
test eax, eax
je 0x51fe68
cvttss2si ecx, dword [eax + 0x898]
mov dword [ebp - 0x64], ecx
cvttss2si eax, dword [eax + 0x89c]
mov dword [ebp - 0x60], eax
xor eax, eax
cmp dword [0x6f1dd4], eax
setne al
mov dword [ebp - 0x5c], eax
xor eax, eax
cmp dword [0x6f1dd0], eax
setne al
mov dword [ebp - 0x58], eax
mov ecx, dword [0x70e7b4]
test ecx, ecx
je 0x51fe90
cvttss2si eax, dword [ecx + 0x898]
mov dword [ebp - 0x54], eax
cvttss2si eax, dword [ecx + 0x89c]
mov dword [ebp - 0x50], eax
mov eax, dword [0x70e7b0]
mov dword [ebp - 0x48], eax
push 0
push 0x80
push 2
push 0
push 0
push 0x40000000
push esi
call dword [sym.imp.KERNEL32.dll_CreateFileA]
mov edi, eax
cmp edi, 0xffffffff
je 0x51ff16
movzx ecx, byte [0x72b7c0]
lea eax, [ebp - 0x128]
mov esi, dword [sym.imp.KERNEL32.dll_WriteFile]
push 0
push eax
push 4
lea eax, [ebp - 0x12c]
mov dword [ebp - 0x12c], 0x6111101
push eax
push edi
mov dword [ebp - 0x130], ecx
call esi
push 0
lea eax, [ebp - 0x128]
push eax
push 4
lea eax, [ebp - 0x130]
push eax
push edi
call esi
push 0
lea eax, [ebp - 0x128]
push eax
push 0x120
lea eax, [ebp - 0x124]
push eax
push edi
call esi
push edi
call dword [sym.imp.KERNEL32.dll_CloseHandle]
mov ecx, dword [ebp - 4]
pop edi
xor ecx, ebp
pop esi
call fcn.0059978a
mov esp, ebp
pop ebp
ret 4