Function at 0x4a5ce0
Capabilities:
Write file on windows

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x34
mov eax, dword [0x5153d4]
xor eax, ebp
mov dword [ebp - 4], eax
push ebx
mov ecx, 0x10
push esi
mov esi, dword [0x7cc8b8]
push edi
lea edi, [ecx - 0xf]
lea ebx, [ecx - 1]
test esi, esi
jne 0x4a5db5
mov eax, dword [0x6e6b68]
lea edx, [ecx - 0x52]
xor ecx, ecx
cmp dword [0x7cc8c0], ecx
je 0x4a5d23
push dword [eax + 0x18]
jmp 0x4a5d26
push dword [eax + 0x4c]
push 0
call fcn.00475e60
mov ecx, eax
mov edx, 0x10
add esp, 8
mov dword [0x7cc8b8], ecx
mov word [ecx + 0xe], dx
or dword [ecx], edx
or dword [ecx], 0x20
call fcn.004a57c0
mov esi, dword [0x7cc8b8]
mov dword [0x7cc8c4], 0xffffffff
mov ecx, dword [esi + 0x2e]
call fcn.004a74b0
mov ecx, dword [esi + 0x32]
call fcn.004a74b0
or dword [esi], 0x200
xor eax, eax
mov dword [esi + 0x24], eax
mov dword [esi + 0x28], eax
mov eax, 0x30
mov word [esi + 0x2c], ax
xor eax, eax
mov dword [esi + 0x1a], 0x516770
mov word [esi + 0x18], ax
mov word [esi + 6], di
mov esi, dword [0x7cc8b8]
lea ecx, [eax + 0x10]
test esi, esi
je 0x4a5db5
or dword [esi], 0x400
mov word [esi + 0x1e], bx
mov dword [esi + 0x20], 0x51674c
mov word [esi + 8], ax
mov edx, dword [0x7d1220]
cmp edx, 3
ja case.default.0x4a5dc4
jmp dword [edx*4 + 0x4a6570]
mov eax, dword [0x6e7040]
test al, 0xc
je 0x4a5feb
mov edi, dword [0x7cc8c4]
mov dword [ebp - 0x34], edi
cmp edi, 0xffffffff
jne 0x4a5f44
xor eax, eax
cmp dword [0x7cc8c0], eax
sete al
mov dword [0x7cc8c0], eax
test eax, eax
je 0x4a5e57
push eax
mov eax, dword [0x6e6b68]
push dword [eax + 0x18]
lea eax, [ebp - 0x2c]
push eax
call dword [sym.imp.USER32.dll_wsprintfA]
mov esi, dword [0x7cc8b8]
add esp, 0xc
test esi, esi
je 0x4a5e4c
test byte [esi], 1
je 0x4a5e4c
mov eax, dword [esi + 0x38]
movups xmm0, xmmword [ebp - 0x2c]
mov edi, dword [0x7cc8c4]
mov dword [ebp - 0x34], edi
movups xmmword [eax], xmm0
movups xmm0, xmmword [ebp - 0x1c]
movups xmmword [eax + 0x10], xmm0
movups xmm0, xmmword [ebp - 0xc]
movups xmmword [eax + 0x20], xmm0
movups xmm0, xmmword [ebp + 4]
jmp 0x4a5e89
mov edi, dword [0x7cc8c4]
mov dword [ebp - 0x34], edi
jmp 0x4a5e8d
mov eax, dword [0x6e6b68]
mov ecx, dword [eax + 0x4c]
test ecx, ecx
je 0x4a5e8d
test esi, esi
je 0x4a5e8d
test byte [esi], 1
je 0x4a5e8d
mov eax, dword [esi + 0x38]
movups xmm0, xmmword [ecx]
movups xmmword [eax], xmm0
movups xmm0, xmmword [ecx + 0x10]
movups xmmword [eax + 0x10], xmm0
movups xmm0, xmmword [ecx + 0x20]
movups xmmword [eax + 0x20], xmm0
movups xmm0, xmmword [ecx + 0x30]
movups xmmword [eax + 0x30], xmm0
mov ecx, dword [0x7cc8c0]
mov ebx, 0x7cc840
shl ecx, 4
sub ecx, dword [0x7cc8c0]
lea edi, [ecx*2 + 0x516b00]
nop dword [eax + eax]
movsx eax, word [edi]
mov ecx, dword [ebx]
mov edx, dword [eax*4 + 0x50ee70]
test edx, edx
je 0x4a5ee8
test ecx, ecx
je 0x4a5f1f
test byte [ecx], 1
je 0x4a5f1f
mov eax, dword [ecx + 0x38]
movups xmm0, xmmword [edx]
movups xmmword [eax], xmm0
movups xmm0, xmmword [edx + 0x10]
movups xmmword [eax + 0x10], xmm0
movups xmm0, xmmword [edx + 0x20]
movups xmmword [eax + 0x20], xmm0
movups xmm0, xmmword [edx + 0x30]
jmp 0x4a5f1b
test ecx, ecx
je 0x4a5f1f
test byte [ecx], 1
je 0x4a5f1f
mov eax, dword [ecx + 0x38]
movups xmm0, xmmword [0x510268]
movups xmmword [eax], xmm0
movups xmm0, xmmword [0x510278]
movups xmmword [eax + 0x10], xmm0
movups xmm0, xmmword [0x510288]
movups xmmword [eax + 0x20], xmm0
movups xmm0, xmmword [0x510298]
movups xmmword [eax + 0x30], xmm0
add ebx, 4
add edi, 2
cmp ebx, 0x7cc87c
jl 0x4a5eb0
call fcn.004a5700
mov edi, dword [ebp - 0x34]
mov ebx, 0xf
mov eax, dword [0x6e7040]
jmp 0x4a600c
mov eax, dword [edi*4 + 0x7cc87c]
mov word [eax + 0xe], cx
test eax, eax
je 0x4a5f59
and dword [eax], 0xfffff9ff
cmp edi, 6
jg 0x4a5f63
lea esi, [edi + 7]
jmp 0x4a5f6f
mov esi, 7
cmp edi, ebx
je 0x4a5f6f
lea esi, [edi - 7]
mov dword [0x7cc8c4], esi
mov esi, dword [esi*4 + 0x7cc87c]
mov word [esi + 0xe], cx
mov ecx, dword [esi + 0x2e]
call fcn.004a74b0
mov ecx, dword [esi + 0x32]
call fcn.004a74b0
mov edi, dword [0x7cc8c4]
xor eax, eax
or dword [esi], 0x200
mov dword [esi + 0x24], eax
mov dword [esi + 0x28], eax
mov word [esi + 0x2c], ax
mov word [esi + 0x18], ax
mov eax, 1
mov word [esi + 6], ax
mov eax, dword [edi*4 + 0x7cc87c]
mov dword [esi + 0x1a], 0x516770
mov esi, dword [0x7cc8b8]
test eax, eax
je 0x4a5fe4
or dword [eax], 0x400
xor ecx, ecx
mov word [eax + 0x1e], bx
mov dword [eax + 0x20], 0x51674c
mov word [eax + 8], cx
mov eax, dword [0x6e7040]
jmp 0x4a600c
test eax, 0x200000
jne 0x4a6216
mov edi, dword [0x7cc8c4]
test eax, 0x100000
je 0x4a600c
cmp edi, 0xffffffff
je 0x4a6216
cmp dword [0x7cc8c0], 0
je case.default.0x4a5dc4
test eax, 0x100000
je 0x4a6096
mov eax, dword [edi*4 + 0x7cc87c]
mov edx, 0x10
mov dword [0x7d1220], 1
mov word [eax + 0xe], dx
test eax, eax
je 0x4a6044
and dword [eax], 0xfffff9ff
mov esi, dword [edi*4 + 0x7cc840]
mov word [esi + 0xe], dx
mov ecx, dword [esi + 0x2e]
call fcn.004a74b0
mov ecx, dword [esi + 0x32]
call fcn.004a74b0
or dword [esi], 0x200
xor eax, eax
mov dword [esi + 0x24], eax
mov dword [esi + 0x28], eax
mov word [esi + 0x2c], ax
mov word [esi + 0x18], ax
mov eax, 1
mov word [esi + 6], ax
mov eax, dword [0x7cc8c4]
mov dword [esi + 0x1a], 0x516770
mov eax, dword [eax*4 + 0x7cc840]
jmp 0x4a612c
test al, 1
je 0x4a6173
cmp edi, 0xffffffff
jne 0x4a6150
test esi, esi
je 0x4a60bb
and dword [esi], 0xfffffdff
test esi, esi
je 0x4a60bb
and dword [esi], 0xfffffbff
mov edx, 0x10
dec edi
mov dword [0x7cc8c4], edi
cmp edi, 0xffffffff
jge 0x4a61d0
mov dword [0x7cc8c4], 0xe
mov edi, 0xe
mov esi, dword [edi*4 + 0x7cc87c]
mov word [esi + 0xe], dx
mov ecx, dword [esi + 0x2e]
call fcn.004a74b0
mov ecx, dword [esi + 0x32]
call fcn.004a74b0
or dword [esi], 0x200
xor eax, eax
mov dword [esi + 0x24], eax
mov dword [esi + 0x28], eax
mov word [esi + 0x2c], ax
mov dword [esi + 0x1a], 0x516770
mov word [esi + 0x18], ax
mov eax, 1
mov word [esi + 6], ax
mov eax, dword [0x7cc8c4]
mov eax, dword [eax*4 + 0x7cc87c]
test eax, eax
je case.default.0x4a5dc4
or dword [eax], 0x400
xor ecx, ecx
mov word [eax + 0x1e], bx
mov dword [eax + 0x20], 0x51674c
mov word [eax + 8], cx
jmp case.default.0x4a5dc4
mov eax, dword [edi*4 + 0x7cc87c]
mov edx, 0x10
mov word [eax + 0xe], dx
test eax, eax
je 0x4a60c0
and dword [eax], 0xfffff9ff
jmp 0x4a60c0
test al, 2
je case.default.0x4a5dc4
cmp edi, 0xffffffff
jne 0x4a61b1
test esi, esi
je 0x4a6194
and dword [esi], 0xfffffdff
test esi, esi
je 0x4a6194
and dword [esi], 0xfffffbff
mov edx, 0x10
inc edi
mov dword [0x7cc8c4], edi
cmp edi, 0xe
jle 0x4a61cd
mov dword [0x7cc8c4], 0xffffffff
jmp 0x4a61d6
mov eax, dword [edi*4 + 0x7cc87c]
mov edx, 0x10
mov word [eax + 0xe], dx
test eax, eax
je 0x4a6199
and dword [eax], 0xfffff9ff
jmp 0x4a6199
cmp edi, 0xffffffff
jne 0x4a60df
mov ecx, dword [esi + 0x2e]
call fcn.004a74b0
mov ecx, dword [esi + 0x32]
call fcn.004a74b0
or dword [esi], 0x200
xor eax, eax
mov dword [esi + 0x24], eax
mov dword [esi + 0x28], eax
mov word [esi + 0x2c], ax
mov dword [esi + 0x1a], 0x516770
mov word [esi + 0x18], ax
mov eax, 1
mov word [esi + 6], ax
mov eax, dword [0x7cc8b8]
jmp 0x4a612c
test esi, esi
je 0x4a6235
mov eax, dword [esi]
test al, 1
je 0x4a6235
and eax, 0xfffffffe
mov dword [esi], eax
mov ax, word [0x7b7b9c]
dec ax
mov word [0x7b7b9c], ax
jmp 0x4a623b
mov ax, word [0x7b7b9c]
mov edx, dword [0x7cc8bc]
mov dword [0x7cc8b8], 0
test edx, edx
je 0x4a6263
mov ecx, dword [edx]
test cl, 1
je 0x4a6263
and ecx, 0xfffffffe
dec ax
mov dword [edx], ecx
mov word [0x7b7b9c], ax
mov dword [0x7cc8bc], 0
xor ecx, ecx
nop
mov esi, dword [ecx + 0x7cc87c]
test esi, esi
je 0x4a628e
mov edx, dword [esi]
test dl, 1
je 0x4a628e
and edx, 0xfffffffe
dec ax
mov dword [esi], edx
mov word [0x7b7b9c], ax
mov esi, dword [ecx + 0x7cc840]
mov dword [ecx + 0x7cc87c], 0
test esi, esi
je 0x4a62b6
mov edx, dword [esi]
test dl, 1
je 0x4a62b6
and edx, 0xfffffffe
dec ax
mov dword [esi], edx
mov word [0x7b7b9c], ax
mov dword [ecx + 0x7cc840], 0
add ecx, 4
cmp ecx, 0x3c
jl 0x4a6270
call fcn.004a5770
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.004b557b
mov esp, ebp
pop ebp
ret
test dword [0x6e7040], 0x100000
jne case.default.0x4a5dc4
mov dword [0x7d1220], 2
jmp case.default.0x4a5dc4
xor edx, edx
mov esi, 0x100
movsx eax, dx
cmp byte [eax + 0x748da8], 0
jl 0x4a6316
inc edx
cmp dx, si
jl 0x4a6304
xor ecx, ecx
movzx eax, dx
cmp dx, si
cmovne ecx, eax
movzx edx, cx
test dx, dx
je case.default.0x4a5dc4
movsx eax, dx
mov esi, dword [eax*4 + 0x50ee70]
test esi, esi
je case.default.0x4a5dc4
cmp dx, 0x1c
je case.default.0x4a5dc4
mov eax, 0xcb
cmp dx, ax
je case.default.0x4a5dc4
mov eax, 0xcd
cmp dx, ax
je case.default.0x4a5dc4
mov eax, 0xc8
cmp dx, ax
je case.default.0x4a5dc4
mov eax, 0xd0
cmp dx, ax
je case.default.0x4a5dc4
mov edi, dword [0x7cc8c4]
cmp dx, 1
je 0x4a63d7
mov ecx, dword [0x7cc8c0]
mov eax, dword [edi*4 + 0x7cc840]
shl ecx, 4
sub ecx, dword [0x7cc8c0]
add ecx, edi
mov word [ecx*2 + 0x516b00], dx
test eax, eax
je 0x4a63d7
test byte [eax], 1
je 0x4a63d7
mov eax, dword [eax + 0x38]
movups xmm0, xmmword [esi]
movups xmmword [eax], xmm0
movups xmm0, xmmword [esi + 0x10]
movups xmmword [eax + 0x10], xmm0
movups xmm0, xmmword [esi + 0x20]
movups xmmword [eax + 0x20], xmm0
movups xmm0, xmmword [esi + 0x30]
movups xmmword [eax + 0x30], xmm0
mov eax, dword [edi*4 + 0x7cc840]
mov edx, 0x10
mov word [eax + 0xe], dx
test eax, eax
je 0x4a63f1
and dword [eax], 0xfffff9ff
mov esi, dword [edi*4 + 0x7cc87c]
mov word [esi + 0xe], dx
mov ecx, dword [esi + 0x2e]
call fcn.004a74b0
mov ecx, dword [esi + 0x32]
call fcn.004a74b0
or dword [esi], 0x200
xor eax, eax
mov dword [esi + 0x24], eax
mov dword [esi + 0x28], eax
mov word [esi + 0x2c], ax
mov word [esi + 0x18], ax
mov eax, 1
mov word [esi + 6], ax
mov eax, dword [0x7cc8c4]
mov dword [esi + 0x1a], 0x516770
mov eax, dword [eax*4 + 0x7cc87c]
test eax, eax
je 0x4a6459
or dword [eax], 0x400
xor ecx, ecx
mov word [eax + 0x1e], bx
mov dword [eax + 0x20], 0x51674c
mov word [eax + 8], cx
mov dword [0x7d1220], 3
call fcn.004a5700
jmp case.default.0x4a5dc4
mov ecx, dword [0x7cc8c0]
shl ecx, 4
sub ecx, dword [0x7cc8c0]
add ecx, dword [0x7cc8c4]
movzx esi, word [ecx*2 + 0x516b00]
movsx eax, si
cmp byte [eax + 0x748da8], 0
jl 0x4a64f2
mov dword [0x7d1220], 0
mov edx, esi
cmp si, 0x1d
jne 0x4a64bc
mov eax, 0x9d
mov word [ecx*2 + 0x516b00], ax
call fcn.004a5700
jmp 0x4a64f6
mov eax, edx
cmp dx, 0x2a
jne 0x4a64d8
mov eax, 0x36
mov word [ecx*2 + 0x516b00], ax
call fcn.004a5700
jmp 0x4a64f6
cmp ax, 0x38
jne 0x4a64eb
mov eax, 0xb8
mov word [ecx*2 + 0x516b00], ax
call fcn.004a5700
jmp 0x4a64f6
test edx, edx
jne case.default.0x4a5dc4
call fcn.004adac0
push 0x51026c
push str.data.bin
call dword [sym.imp.api_ms_win_crt_stdio_l1_1_0.dll_fopen]
mov edi, eax
add esp, 8
test edi, edi
je case.default.0x4a5dc4
mov esi, dword [sym.imp.api_ms_win_crt_stdio_l1_1_0.dll_fwrite]
push edi
push 0xa
push 4
push 0x6ef198
call esi
push edi
push 0xa
push 4
push 0x6ef1c0
call esi
push edi
push 1
push 4
push 0x6ef1e8
call esi
push edi
call dword [sym.imp.api_ms_win_crt_stdio_l1_1_0.dll_fclose]
add esp, 0x34
mov ecx, dword [ebp - 4]
pop edi
pop esi
xor ecx, ebp
mov dword [0x748da4], 0
mov dword [0x6e7040], 0
pop ebx
call fcn.004b557b
mov esp, ebp
pop ebp
ret