Function at 0x4d2330
Capabilities:
Write file on windows

Disassembly:
sub esp, 0x64c
mov eax, dword [0x53d9f8]
xor eax, esp
mov dword [esp + 0x648], eax
push ebx
mov ebx, dword [esp + 0x658]
push ebp
push esi
push edi
mov edi, ecx
mov ecx, dword [esp + 0x66c]
cmp ecx, 3
je 0x4d236b
cmp ecx, 2
je 0x4d236b
cmp ecx, 1
jne 0x4d24bc
mov eax, dword [edi + 4]
cmp ecx, 3
jne 0x4d2498
mov ebp, dword [esp + 0x660]
cmp ebp, eax
je 0x4d2429
cmp eax, 0xffffffff
je 0x4d2395
push dword [edi]
call fcn.004d51b0
add esp, 4
mov eax, dword [edi]
mov dword [edi + 4], 0xffffffff
cmp ebp, dword [eax + 4]
jge 0x4d24bc
cmp dword [eax + 0x10], ebp
jle 0x4d23ba
push eax
call fcn.004d5230
mov eax, dword [edi]
add esp, 4
cmp dword [eax + 0x10], ebp
jge 0x4d2417
mov esi, eax
nop
mov eax, esi
test esi, esi
je 0x4d2410
cmp dword [esi + 0x18], 0
je 0x4d2410
mov edx, dword [esi + 0x10]
inc edx
cmp edx, dword [esi + 4]
je 0x4d2410
mov ecx, dword [esi + 0x50]
mov eax, dword [esi + 0x48]
add ecx, 0x2e
add ecx, dword [esi + 0x4c]
push 0
push 0
push 0
push 0
add eax, ecx
mov dword [esi + 0x10], edx
add dword [esi + 0x14], eax
lea eax, [esi + 0x78]
push 0
push 0
push eax
lea eax, [esi + 0x28]
push eax
push esi
call fcn.004d5ae0
add esp, 0x24
neg eax
sbb eax, eax
inc eax
mov dword [esi + 0x18], eax
mov eax, dword [edi]
mov esi, eax
cmp dword [eax + 0x10], ebp
jl 0x4d23c0
push dword [edi + 0x23c]
push eax
call fcn.004d5280
add esp, 8
mov dword [edi + 4], ebp
lea eax, [esp + 0x13]
push eax
push dword [esp + 0x66c]
push ebx
push dword [edi]
call fcn.004d5610
mov esi, eax
add esp, 0x10
test esi, esi
jg 0x4d2457
push dword [edi]
call fcn.004d51b0
add esp, 4
mov dword [edi + 4], 0xffffffff
cmp byte [esp + 0x13], 0
jne 0x4d25be
test esi, esi
jle 0x4d2486
mov eax, 0x600
mov ecx, dword [esp + 0x658]
pop edi
pop esi
pop ebp
pop ebx
xor ecx, esp
call fcn.004bee49
add esp, 0x64c
ret 0x10
cmp esi, 0xffffff96
mov eax, 0x5000000
mov ecx, 0x1000
cmove eax, ecx
jmp 0x4d246b
cmp eax, 0xffffffff
je 0x4d24a7
push dword [edi]
call fcn.004d51b0
add esp, 4
mov esi, dword [edi]
mov ebp, dword [esp + 0x660]
mov dword [edi + 4], 0xffffffff
cmp ebp, dword [esi + 4]
jl 0x4d24c3
mov eax, 0x10000
jmp 0x4d246b
cmp dword [esi + 0x10], ebp
jle 0x4d2507
mov ecx, esi
test ecx, ecx
je 0x4d2504
mov eax, dword [ecx + 0x24]
push 0
push 0
push 0
push 0
push 0
mov dword [ecx + 0x14], eax
lea eax, [ecx + 0x78]
push 0
push eax
lea eax, [ecx + 0x28]
mov dword [ecx + 0x10], 0
push eax
push ecx
call fcn.004d5ae0
add esp, 0x24
mov ecx, esi
neg eax
sbb eax, eax
inc eax
mov dword [ecx + 0x18], eax
mov esi, dword [edi]
cmp dword [esi + 0x10], ebp
jge 0x4d2567
nop dword [eax]
mov eax, esi
test esi, esi
je 0x4d2560
cmp dword [esi + 0x18], 0
je 0x4d2560
mov edx, dword [esi + 0x10]
inc edx
cmp edx, dword [esi + 4]
je 0x4d2560
mov ecx, dword [esi + 0x50]
mov eax, dword [esi + 0x48]
add ecx, 0x2e
add ecx, dword [esi + 0x4c]
push 0
push 0
push 0
push 0
add eax, ecx
mov dword [esi + 0x10], edx
add dword [esi + 0x14], eax
lea eax, [esi + 0x78]
push 0
push 0
push eax
lea eax, [esi + 0x28]
push eax
push esi
call fcn.004d5ae0
add esp, 0x24
neg eax
sbb eax, eax
inc eax
mov dword [esi + 0x18], eax
mov eax, dword [edi]
mov esi, eax
cmp dword [eax + 0x10], ebp
jl 0x4d2510
lea eax, [esp + 0x18]
mov ecx, edi
push eax
push ebp
call fcn.004d1960
test byte [esp + 0x224], 0x10
je 0x4d25c5
cmp dword [esp + 0x66c], 1
je 0x4d25be
movzx eax, word [ebx]
cmp eax, 0x2f
je 0x4d25a5
cmp eax, 0x5c
je 0x4d25a5
test ax, ax
je 0x4d25a1
cmp word [ebx + 2], 0x3a
je 0x4d25a5
xor dl, dl
jmp 0x4d25a7
mov dl, 1
xor ecx, ecx
lea eax, [edi + 0x244]
test dl, dl
push ebx
cmove ecx, eax
push ecx
call fcn.004d1820
add esp, 8
xor eax, eax
jmp 0x4d246b
cmp dword [esp + 0x66c], 1
je 0x4d26ee
movzx eax, word [ebx]
mov esi, ebx
mov ecx, ebx
test ax, ax
je 0x4d25fe
mov edx, eax
cmp dx, 0x2f
je 0x4d25ed
cmp dx, 0x5c
jne 0x4d25f0
lea esi, [ecx + 2]
movzx eax, word [ecx + 2]
add ecx, 2
mov edx, eax
test ax, ax
jne 0x4d25e1
lea edx, [esp + 0x248]
mov ecx, ebx
sub edx, ebx
nop dword [eax]
movzx eax, word [ecx]
lea ecx, [ecx + 2]
mov word [edx + ecx - 2], ax
test ax, ax
jne 0x4d2610
cmp esi, ebx
jne 0x4d2630
xor eax, eax
mov word [esp + 0x248], ax
jmp 0x4d2670
mov eax, esi
sub eax, ebx
and eax, 0xfffffffe
cmp eax, 0x208
jae 0x4d27d1
xor ecx, ecx
mov word [esp + eax + 0x248], cx
mov ax, word [esp + 0x248]
cmp ax, 0x2f
je 0x4d2698
cmp ax, 0x5c
je 0x4d2698
test ax, ax
je 0x4d2670
cmp word [esp + 0x24a], 0x3a
je 0x4d2698
push esi
lea eax, [esp + 0x24c]
push eax
lea ebx, [edi + 0x244]
push ebx
lea eax, [esp + 0x45c]
push str._s_s_s
push eax
call dword [sym.imp.USER32.dll_wsprintfW]
add esp, 0x14
jmp 0x4d26b9
push esi
lea eax, [esp + 0x24c]
push eax
lea eax, [esp + 0x458]
push str._s_s
push eax
call dword [sym.imp.USER32.dll_wsprintfW]
add esp, 0x10
xor ebx, ebx
lea eax, [esp + 0x248]
push eax
push ebx
call fcn.004d1820
add esp, 8
lea eax, [esp + 0x450]
push 0
push dword [esp + 0x228]
push 2
push 0
push 0
push 0x40000000
push eax
call dword [sym.imp.KERNEL32.dll_CreateFileW]
mov ebx, eax
cmp ebx, 0xffffffff
jne 0x4d26fd
mov eax, 0x200
jmp 0x4d246b
push dword [edi + 0x23c]
push dword [edi]
call fcn.004d5280
add esp, 8
cmp dword [edi + 0x240], 0
jne 0x4d2729
push 0x4000
call fcn.004bee3b
add esp, 4
mov dword [edi + 0x240], eax
xor ebp, ebp
nop dword [eax + eax]
lea eax, [esp + 0x13]
push eax
push 0x4000
push dword [edi + 0x240]
push dword [edi]
call fcn.004d5610
mov esi, eax
add esp, 0x10
cmp esi, 0xffffff96
je 0x4d27aa
test esi, esi
js 0x4d277b
jle 0x4d2770
push 0
lea eax, [esp + 0x18]
push eax
push esi
push dword [edi + 0x240]
push ebx
call dword [sym.imp.KERNEL32.dll_WriteFile]
test eax, eax
je 0x4d2782
cmp byte [esp + 0x13], 0
jne 0x4d2789
test esi, esi
jne 0x4d2730
mov ebp, 0x5000000
jmp 0x4d27af
mov ebp, 0x400
jmp 0x4d27af
lea eax, [esp + 0x238]
push eax
lea eax, [esp + 0x22c]
push eax
lea eax, [esp + 0x238]
push eax
push ebx
call dword [sym.imp.KERNEL32.dll_SetFileTime]
jmp 0x4d27af
mov ebp, 0x1000
cmp dword [esp + 0x66c], 1
je 0x4d27c0
push ebx
call dword [sym.imp.KERNEL32.dll_CloseHandle]
push dword [edi]
call fcn.004d51b0
add esp, 4
mov eax, ebp
jmp 0x4d246b
call fcn.004bf80d
int3