Function at 0x100225c0
Capabilities:
Write file on windows

Disassembly:
push ebp
mov ebp, esp
mov eax, 0x2da4
call fcn.1009d490
mov eax, dword [0x100df0c0]
xor eax, ebp
mov dword [ebp - 4], eax
mov eax, dword [ebp + 0x10]
push ebx
mov ebx, dword [ebp + 8]
push esi
push edi
mov edi, dword [ebp + 0xc]
mov esi, ecx
push 0x7f
mov dword [ebp - 0x2da0], eax
lea eax, [ebp - 0x2d90]
push 0
push eax
mov dword [ebp - 0x2d9c], 0
mov byte [ebp - 0x2d95], 1
mov dword [ebp - 0x2d94], 0
call fcn.1009c990
xor eax, eax
push 0x2d08
push eax
mov dword [ebp - 0x2d10], eax
lea eax, [ebp - 0x2d0c]
push eax
call fcn.1009c990
mov eax, dword [0x101f42ac]
add eax, 0x35b10
push 0x2d0c
push eax
lea eax, [ebp - 0x2d10]
push eax
call fcn.1009b860
add esp, 0x24
cmp dword [esi + 0x280], 0xffffffff
jne 0x100226e0
push 0
lea eax, [ebp - 0x2d9c]
push eax
push edi
push ebx
push dword [esi + 8]
call dword [sym.imp.KERNEL32.dll_WriteFile]
mov ecx, dword [ebp - 0x2da0]
test eax, eax
mov eax, dword [ebp - 0x2d9c]
setne byte [ebp - 0x2d95]
mov dword [ecx], eax
add dword [esi + 0x284], eax
mov ecx, dword [esi + 0x28c]
mov eax, ecx
adc dword [esi + 0x288], 0
mov edx, dword [esi + 0x290]
or eax, edx
je 0x10022bf3
mov eax, dword [0x101f4068]
test eax, eax
je 0x10022bf3
mov ebx, dword [esi + 0x288]
mov edi, dword [esi + 0x284]
cmp edx, ebx
jb 0x10022bf3
ja 0x100226d5
cmp ecx, edi
jb 0x10022bf3
push edx
push ecx
push ebx
push edi
jmp 0x10022be7
mov ecx, dword [esi + 0x49c]
lea eax, [ecx + edi]
cmp eax, 0x100000
jae 0x10022710
push edi
lea eax, [esi + 0x4b0]
add eax, ecx
push ebx
push eax
call fcn.1009b860
add esp, 0xc
mov ecx, edi
add dword [esi + 0x49c], edi
jmp 0x1002291e
mov eax, 0x100000
sub eax, ecx
push eax
lea eax, [esi + 0x4b0]
add eax, ecx
push ebx
push eax
call fcn.1009b860
mov ecx, dword [0x101f4078]
add esp, 0xc
test ecx, ecx
je 0x100228b0
cmp dword [0x101f4913], 0
je 0x100228b0
movdqu xmm0, xmmword [0x101f48d2]
lea eax, [esi + 0x4b0]
mov dword [ebp - 0x2d78], 0x100000
mov dword [ebp - 0x2d7c], eax
mov eax, dword [0x101f46b4]
mov dword [ebp - 0x2d88], eax
mov eax, dword [0x101f44b0]
mov dword [ebp - 0x2d90], eax
mov eax, dword [0x101f48ce]
mov dword [ebp - 0x2d80], eax
lea eax, [ebp - 0x2d10]
mov dword [ebp - 0x2d6e], eax
movzx eax, word [0x101f46c2]
mov word [ebp - 0x2d74], ax
movzx eax, word [0x101f46b8]
mov word [ebp - 0x2d66], ax
movzx eax, word [0x101f46ba]
mov word [ebp - 0x2d64], ax
movzx eax, word [0x101f46bc]
mov word [ebp - 0x2d62], ax
movzx eax, word [0x101f46be]
mov word [ebp - 0x2d60], ax
movzx eax, word [0x101f46c0]
mov word [ebp - 0x2d5e], ax
movzx eax, word [0x101f46c4]
movdqu xmmword [ebp - 0x2d52], xmm0
mov word [ebp - 0x2d5c], ax
movdqu xmm0, xmmword [0x101f48e2]
mov eax, dword [0x101f46c6]
mov dword [ebp - 0x2d5a], eax
mov eax, dword [0x101f46ca]
movdqu xmmword [ebp - 0x2d42], xmm0
mov dword [ebp - 0x2d56], eax
movdqu xmm0, xmmword [0x101f48f2]
mov al, byte [0x101f4912]
mov byte [ebp - 0x2d12], al
lea eax, [ebp - 0x2d94]
movdqu xmmword [ebp - 0x2d32], xmm0
push eax
movdqu xmm0, xmmword [0x101f4902]
mov dword [ebp - 0x2d8c], 0x101f44b4
mov dword [ebp - 0x2d94], 0x101f42b0
mov dword [ebp - 0x2d84], 0x101f46ce
mov dword [ebp - 0x2d6a], 0
movdqu xmmword [ebp - 0x2d22], xmm0
call ecx
push dword [ebp - 0x2d6a]
mov ecx, dword [0x101f42ac]
push dword [ebp - 0x2d78]
mov dword [ebp - 0x2d72], 1
push dword [ebp - 0x2d7c]
lea eax, [ecx + 0x35610]
push eax
mov eax, dword [ecx + 0x98]
call eax
add esp, 0x14
mov ecx, dword [esi + 8]
lea eax, [ebp - 0x2d9c]
test ecx, ecx
je 0x100228de
push 0
push eax
push 0x100000
lea eax, [esi + 0x4b0]
push eax
push ecx
call dword [sym.imp.KERNEL32.dll_WriteFile]
test eax, eax
setne byte [ebp - 0x2d95]
jmp 0x100228f8
push eax
push 0x100000
lea eax, [esi + 0x4b0]
mov ecx, esi
push eax
call fcn.10022e10
mov byte [ebp - 0x2d95], al
mov ecx, 0x100000
sub ecx, dword [esi + 0x49c]
add dword [esi + 0x4a8], 0x100000
mov dword [esi + 0x49c], 0
adc dword [esi + 0x4ac], 0
mov eax, dword [ebp - 0x2da0]
add ebx, ecx
sub edi, ecx
mov dword [ebp - 0x2d9c], ecx
add dword [eax], ecx
mov eax, dword [eax]
add dword [esi + 0x284], eax
mov ecx, dword [esi + 0x28c]
mov eax, ecx
adc dword [esi + 0x288], 0
mov edx, dword [esi + 0x290]
or eax, edx
je 0x1002298d
mov eax, dword [0x101f4068]
mov dword [ebp - 0x2da4], eax
test eax, eax
je 0x1002298d
mov eax, dword [esi + 0x284]
cmp edx, dword [esi + 0x288]
jb 0x1002298d
ja 0x10022974
cmp ecx, eax
jb 0x1002298d
push edx
push ecx
push dword [esi + 0x288]
push eax
lea eax, [esi + 0x294]
push eax
call dword [ebp - 0x2da4]
add esp, 0x14
test edi, edi
jne 0x100226e0
mov edx, dword [esi + 0x49c]
test edx, edx
je 0x10022bf3
xor ecx, ecx
mov eax, edx
add eax, dword [esi + 0x4a8]
adc ecx, dword [esi + 0x4ac]
cmp eax, dword [esi + 0x28c]
jne 0x10022bf3
cmp ecx, dword [esi + 0x290]
jne 0x10022bf3
mov ecx, dword [0x101f4078]
test ecx, ecx
je 0x10022b48
cmp dword [0x101f4913], edi
je 0x10022b48
movdqu xmm0, xmmword [0x101f48d2]
lea eax, [esi + 0x4b0]
mov dword [ebp - 0x2d78], edx
mov dword [ebp - 0x2d7c], eax
mov eax, dword [0x101f46b4]
mov dword [ebp - 0x2d88], eax
mov eax, dword [0x101f44b0]
mov dword [ebp - 0x2d90], eax
mov eax, dword [0x101f48ce]
mov dword [ebp - 0x2d80], eax
lea eax, [ebp - 0x2d10]
mov dword [ebp - 0x2d6e], eax
movzx eax, word [0x101f46c2]
mov word [ebp - 0x2d74], ax
movzx eax, word [0x101f46b8]
mov word [ebp - 0x2d66], ax
movzx eax, word [0x101f46ba]
mov word [ebp - 0x2d64], ax
movzx eax, word [0x101f46bc]
mov word [ebp - 0x2d62], ax
movzx eax, word [0x101f46be]
mov word [ebp - 0x2d60], ax
movzx eax, word [0x101f46c0]
mov word [ebp - 0x2d5e], ax
movzx eax, word [0x101f46c4]
movdqu xmmword [ebp - 0x2d52], xmm0
mov word [ebp - 0x2d5c], ax
movdqu xmm0, xmmword [0x101f48e2]
mov eax, dword [0x101f46c6]
mov dword [ebp - 0x2d5a], eax
mov eax, dword [0x101f46ca]
movdqu xmmword [ebp - 0x2d42], xmm0
mov dword [ebp - 0x2d56], eax
movdqu xmm0, xmmword [0x101f48f2]
mov al, byte [0x101f4912]
mov byte [ebp - 0x2d12], al
lea eax, [ebp - 0x2d94]
movdqu xmmword [ebp - 0x2d32], xmm0
push eax
movdqu xmm0, xmmword [0x101f4902]
mov dword [ebp - 0x2d8c], 0x101f44b4
mov dword [ebp - 0x2d94], 0x101f42b0
mov dword [ebp - 0x2d84], 0x101f46ce
mov dword [ebp - 0x2d6a], edi
movdqu xmmword [ebp - 0x2d22], xmm0
call ecx
push dword [ebp - 0x2d6a]
mov ecx, dword [0x101f42ac]
push dword [ebp - 0x2d78]
mov dword [ebp - 0x2d72], 1
push dword [ebp - 0x2d7c]
lea eax, [ecx + 0x35610]
push eax
mov eax, dword [ecx + 0x98]
call eax
add esp, 0x14
mov ecx, dword [esi + 8]
lea eax, [ebp - 0x2d9c]
test ecx, ecx
je 0x10022b77
push 0
push eax
push dword [esi + 0x49c]
lea eax, [esi + 0x4b0]
push eax
push ecx
call dword [sym.imp.KERNEL32.dll_WriteFile]
test eax, eax
setne byte [ebp - 0x2d95]
jmp 0x10022b92
push eax
push dword [esi + 0x49c]
lea eax, [esi + 0x4b0]
mov ecx, esi
push eax
call fcn.10022e10
mov byte [ebp - 0x2d95], al
mov eax, dword [ebp - 0x2da0]
mov ecx, dword [ebp + 0xc]
mov dword [eax], ecx
mov edx, dword [esi + 0x28c]
mov ecx, dword [esi + 0x290]
mov dword [esi + 0x49c], 0
mov eax, dword [eax]
add dword [esi + 0x284], eax
mov eax, edx
adc dword [esi + 0x288], 0
or eax, ecx
je 0x10022bf3
mov eax, dword [0x101f4068]
test eax, eax
je 0x10022bf3
cmp ecx, dword [esi + 0x288]
jb 0x10022bf3
ja 0x10022be3
cmp edx, dword [esi + 0x284]
jb 0x10022bf3
push ecx
push edx
push ecx
push edx
add esi, 0x294
push esi
call eax
add esp, 0x14
mov ecx, dword [ebp - 4]
mov al, byte [ebp - 0x2d95]
xor ecx, ebp
pop edi
pop esi
pop ebx
call fcn.1009bea4
mov esp, ebp
pop ebp
ret 0xc