Function at 0x94b040
Capabilities:
Write file on windows

Disassembly:
sub esp, 0x350
mov eax, dword [0xb196ec]
xor eax, esp
mov dword [esp + 0x34c], eax
push ebx
push ebp
mov ebp, dword [esp + 0x35c]
push esi
push edi
mov edi, dword [esp + 0x36c]
mov esi, edx
mov ebx, ecx
mov dword [esp + 0x14], esi
cmp edi, 3
je 0x94b08f
cmp edi, 2
je 0x94b163
cmp edi, 1
je 0x94b163
mov eax, 0x10000
jmp 0x94b470
mov eax, dword [ebp + 4]
cmp ebx, eax
je 0x94b105
cmp eax, 0xffffffff
je 0x94b0a3
mov edi, dword [ebp]
call fcn.0094a7b0
mov eax, dword [ebp]
mov dword [ebp + 4], 0xffffffff
cmp ebx, dword [eax + 4]
jge 0x94b085
cmp ebx, dword [eax + 0x10]
jge 0x94b0d0
mov esi, eax
call fcn.0094a130
test eax, eax
je 0x94b0cc
mov eax, 0x700
jmp 0x94b470
mov esi, dword [esp + 0x14]
mov eax, dword [ebp]
cmp dword [eax + 0x10], ebx
jge 0x94b0f0
mov esi, dword [ebp]
call fcn.0094a170
test eax, eax
jne 0x94b0c2
mov ecx, dword [ebp]
cmp dword [ecx + 0x10], ebx
jl 0x94b0d8
mov esi, dword [esp + 0x14]
mov edx, dword [ebp + 0x138]
mov eax, dword [ebp]
push edx
call fcn.0094a3c0
add esp, 4
mov dword [ebp + 4], ebx
mov ecx, dword [esp + 0x368]
lea eax, [esp + 0x13]
push eax
mov eax, dword [ebp]
push esi
call fcn.0094a540
mov esi, eax
add esp, 8
test esi, esi
jg 0x94b132
mov edi, dword [ebp]
call fcn.0094a7b0
mov dword [ebp + 4], 0xffffffff
cmp byte [esp + 0x13], 0
jne 0x94b285
test esi, esi
jle 0x94b14b
mov eax, 0x600
jmp 0x94b470
mov eax, esi
sub eax, 0xffffff96
neg eax
sbb eax, eax
and eax, 0x4fff000
add eax, 0x1000
jmp 0x94b470
cmp dword [ebp + 4], 0xffffffff
je 0x94b178
mov edi, dword [ebp]
call fcn.0094a7b0
mov edi, dword [esp + 0x36c]
mov eax, dword [ebp]
mov dword [ebp + 4], 0xffffffff
cmp ebx, dword [eax + 4]
jge 0x94b085
cmp ebx, dword [eax + 0x10]
jge 0x94b1aa
mov esi, eax
call fcn.0094a130
test eax, eax
jne 0x94b0c2
mov esi, dword [esp + 0x14]
mov edi, dword [esp + 0x36c]
mov ecx, dword [ebp]
cmp dword [ecx + 0x10], ebx
jge 0x94b222
mov esi, dword [ebp]
test esi, esi
je 0x94b0c2
cmp dword [esi + 0x18], 0
je 0x94b0c2
mov eax, dword [esi + 0x10]
inc eax
cmp eax, dword [esi + 4]
je 0x94b0c2
mov edx, dword [esi + 0x50]
add edx, dword [esi + 0x4c]
mov ecx, dword [esi + 0x48]
push 0
mov dword [esi + 0x10], eax
lea edx, [edx + ecx + 0x2e]
add dword [esi + 0x14], edx
push 0
lea eax, [esi + 0x78]
push eax
lea ecx, [esi + 0x28]
push ecx
mov eax, esi
call fcn.00949e90
xor edx, edx
add esp, 0x10
test eax, eax
sete dl
mov dword [esi + 0x18], edx
test eax, eax
jne 0x94b0c2
mov eax, dword [ebp]
cmp dword [eax + 0x10], ebx
jl 0x94b1b2
mov esi, dword [esp + 0x14]
mov edi, dword [esp + 0x36c]
lea ecx, [esp + 0x14]
push ecx
push ebx
lea edx, [esp + 0x20]
mov ecx, ebp
mov dword [esp + 0x1c], 0
call fcn.0094a8f0
mov edx, dword [esp + 0x120]
shr edx, 4
test dl, 1
je 0x94b28c
cmp edi, 1
je 0x94b285
mov al, byte [esi]
cmp al, 0x2f
je 0x94b263
cmp al, 0x5c
je 0x94b263
test al, al
je 0x94b275
cmp byte [esi + 1], 0x3a
jne 0x94b275
push esi
push 0
call fcn.0094aed0
add esp, 8
xor eax, eax
jmp 0x94b470
push esi
add ebp, 0x140
push ebp
call fcn.0094aed0
add esp, 8
xor eax, eax
jmp 0x94b470
mov byte [esp + 0x250], 0
cmp edi, 1
jne 0x94b2a0
mov ebx, esi
jmp 0x94b340
mov al, byte [esi]
mov edi, esi
mov ecx, esi
test al, al
je 0x94b2c3
lea ebx, [ebx]
cmp al, 0x2f
je 0x94b2b8
cmp al, 0x5c
jne 0x94b2bb
lea edi, [ecx + 1]
mov al, byte [ecx + 1]
inc ecx
test al, al
jne 0x94b2b0
push 0x104
lea eax, [esp + 0x14c]
push esi
push eax
call fcn.00a7b9de
add esp, 0xc
cmp edi, esi
jne 0x94b34f
mov byte [esp + 0x148], 0
push edi
lea edx, [esp + 0x14c]
push edx
lea esi, [ebp + 0x140]
push esi
lea eax, [esp + 0x25c]
push str._s_s_s
push eax
call fcn.00a78f30
add esp, 0x14
lea ecx, [esp + 0x148]
push ecx
push esi
call fcn.0094aed0
add esp, 8
mov edx, dword [esp + 0x120]
push 0
push edx
push 2
push 0
push 0
push 0x40000000
lea eax, [esp + 0x268]
push eax
call dword [sym.imp.KERNEL32.dll_CreateFileA]
mov ebx, eax
cmp ebx, 0xffffffff
jne 0x94b3b2
mov eax, 0x200
jmp 0x94b470
mov ecx, edi
sub ecx, esi
mov byte [esp + ecx + 0x148], 0
mov al, byte [esp + 0x148]
cmp al, 0x2f
je 0x94b380
cmp al, 0x5c
je 0x94b380
test al, al
je 0x94b2e5
cmp byte [esp + 0x149], 0x3a
jne 0x94b2e5
push edi
lea edx, [esp + 0x14c]
push edx
lea eax, [esp + 0x258]
push 0xac9b30
push eax
call fcn.00a78f30
lea ecx, [esp + 0x158]
push ecx
push 0
call fcn.0094aed0
add esp, 0x18
jmp 0x94b31b
mov ecx, dword [ebp + 0x138]
mov eax, dword [ebp]
push ecx
call fcn.0094a3c0
add esp, 4
cmp dword [ebp + 0x13c], 0
jne 0x94b3e0
push 0x4000
call fcn.00a77370
add esp, 4
mov dword [ebp + 0x13c], eax
mov edi, dword [sym.imp.KERNEL32.dll_WriteFile]
mov eax, dword [ebp + 0x13c]
lea edx, [esp + 0x13]
push edx
push eax
mov eax, dword [ebp]
mov ecx, 0x4000
call fcn.0094a540
mov esi, eax
add esp, 8
cmp esi, 0xffffff96
je 0x94b430
test esi, esi
jl 0x94b430
jle 0x94b425
mov edx, dword [ebp + 0x13c]
push 0
lea ecx, [esp + 0x18]
push ecx
push esi
push edx
push ebx
call edi
test eax, eax
je 0x94b430
cmp byte [esp + 0x13], 0
jne 0x94b430
test esi, esi
jne 0x94b3e6
mov edi, dword [ebp]
call fcn.0094a7b0
mov esi, eax
test esi, esi
jne 0x94b45d
lea eax, [esp + 0x134]
push eax
lea ecx, [esp + 0x128]
push ecx
lea edx, [esp + 0x134]
push edx
push ebx
call dword [sym.imp.KERNEL32.dll_SetFileTime]
cmp dword [esp + 0x36c], 1
je 0x94b46e
push ebx
call dword [sym.imp.KERNEL32.dll_CloseHandle]
mov eax, esi
mov ecx, dword [esp + 0x35c]
pop edi
pop esi
pop ebp
pop ebx
xor ecx, esp
call fcn.00a78f21
add esp, 0x350
ret 0xc