Function at 0x4677a0
Capabilities:
Write file on windows

Disassembly:
push ebp
mov ebp, esp
mov eax, 0x2dd8
call fcn.004b3ee0
mov eax, dword [0x52d080]
xor eax, ebp
mov dword [ebp - 8], eax
mov eax, dword [ebp + 0xc]
xorps xmm0, xmm0
push ebx
mov dword [ebp - 0x2db8], eax
xor eax, eax
push esi
mov dword [ebp - 0x2da8], eax
mov dword [ebp - 0x2d8c], eax
mov dword [ebp - 0x2db0], eax
lea eax, [ebp - 0x27c]
push edi
push eax
mov dword [ebp - 0x2db4], edx
mov edi, ecx
movlpd qword [ebp - 0x2dcc], xmm0
movlpd qword [ebp - 0x2dc4], xmm0
call fcn.00467600
add esp, 4
test eax, eax
je 0x467e99
mov ebx, dword [ebp - 0x25c]
mov eax, ebx
mov esi, dword [ebp - 0x258]
or eax, esi
mov dword [ebp - 0x2d78], ebx
mov dword [ebp - 0x2d80], esi
je 0x467e83
test edi, edi
je 0x46786e
mov ecx, dword [edi + 0x48]
test ecx, ecx
je 0x46786e
mov edx, dword [ebp - 0x2db4]
cmp edx, dword [edi + 0x10]
jae 0x46786e
cmp dword [edi + 0x14], 1
jne 0x46786e
mov eax, dword [ecx + 0x10]
mov eax, dword [eax + edx*4]
add eax, dword [ecx]
je 0x46786e
movzx ecx, word [eax + 0x1c]
test ecx, ecx
je 0x467864
cmp byte [ecx + eax + 0x2d], 0x2f
je 0x467e83
test byte [eax + 0x26], 0x10
jne 0x467e83
test byte [ebp - 0x270], 0x21
jne 0x467e99
mov ax, word [ebp - 0x26e]
test ax, ax
je 0x467891
cmp ax, 8
jne 0x467e99
push 0x1e
lea eax, [ebp - 0x28]
push eax
push dword [ebp - 0x240]
mov eax, dword [edi + 0x38]
push dword [ebp - 0x244]
push dword [edi + 0x44]
call eax
add esp, 0x14
cmp eax, 0x1e
jne 0x467e99
cmp dword [ebp - 0x28], 0x4034b50
jne 0x467e99
movzx eax, word [ebp - 0xe]
cdq
mov ecx, eax
mov dword [ebp - 0x2d74], edx
movzx eax, word [ebp - 0xc]
cdq
add ecx, eax
mov eax, dword [ebp - 0x2d74]
adc eax, edx
add ecx, dword [ebp - 0x244]
adc eax, dword [ebp - 0x240]
add ecx, 0x1e
mov edx, ecx
mov dword [ebp - 0x2d88], ecx
adc eax, 0
add edx, ebx
mov dword [ebp - 0x2d74], eax
adc eax, esi
cmp eax, dword [edi + 4]
ja 0x467e99
jb 0x467917
cmp edx, dword [edi]
ja 0x467e99
mov eax, dword [edi + 0x48]
mov eax, dword [eax + 0x48]
test eax, eax
je 0x46797e
add eax, ecx
mov dword [ebp - 0x2da0], ebx
mov ecx, esi
mov dword [ebp - 0x2d70], eax
mov eax, ebx
mov dword [ebp - 0x2d7c], ecx
xorps xmm0, xmm0
mov dword [ebp - 0x2dac], ecx
movlpd qword [ebp - 0x2d94], xmm0
mov edx, ecx
mov esi, dword [ebp - 0x2d90]
mov ebx, dword [ebp - 0x2d94]
mov dword [ebp - 0x2d98], ecx
mov ecx, dword [ebp - 0x2d70]
mov dword [ebp - 0x2d84], eax
mov dword [ebp - 0x30], eax
mov dword [ebp - 0x2d9c], eax
mov dword [ebp - 0x2db4], eax
jmp 0x467a01
test esi, esi
ja 0x467996
jb 0x46798c
cmp ebx, 0x10000
jae 0x467996
mov eax, ebx
mov dword [ebp - 0x2dac], esi
jmp 0x4679a3
xor edx, edx
mov eax, 0x10000
mov dword [ebp - 0x2dac], edx
push eax
push 1
push dword [edi + 0x34]
mov dword [ebp - 0x2d84], eax
mov eax, dword [edi + 0x28]
call eax
mov ecx, eax
add esp, 0xc
mov dword [ebp - 0x2d70], ecx
test ecx, ecx
je 0x467e99
xorps xmm0, xmm0
mov dword [ebp - 0x30], ebx
movlpd qword [ebp - 0x2da4], xmm0
mov edx, esi
mov eax, dword [ebp - 0x2da0]
mov dword [ebp - 0x2d7c], eax
mov eax, dword [ebp - 0x2da4]
mov dword [ebp - 0x2d9c], ebx
mov dword [ebp - 0x2d98], edx
mov dword [ebp - 0x2db4], ebx
mov dword [ebp - 0x2da0], eax
cmp word [ebp - 0x26e], 0
mov dword [ebp - 0x2c], esi
mov dword [ebp - 0x2d90], ebx
je 0x467c76
mov eax, dword [edi + 0x28]
push 0x8000
push 1
push dword [edi + 0x34]
mov dword [ebp - 0x2d6c], 0
call eax
add esp, 0xc
mov dword [ebp - 0x2db0], eax
test eax, eax
jne 0x467a46
or ebx, 0xffffffff
jmp 0x467e3b
mov eax, dword [ebp - 0x2dc8]
mov edx, dword [ebp - 0x2da0]
mov dword [ebp - 0x2d98], eax
mov eax, dword [ebp - 0x2dcc]
mov dword [ebp - 0x2d90], eax
mov eax, dword [ebp - 0x2dc0]
mov dword [ebp - 0x2d80], eax
mov eax, dword [ebp - 0x2dc4]
mov dword [ebp - 0x2d78], eax
nop dword [eax]
mov ecx, eax
mov eax, dword [ebp - 0x2db0]
and ecx, 0x7fff
add eax, ecx
mov dword [ebp - 0x2d9c], eax
mov eax, 0x8000
sub eax, ecx
mov dword [ebp - 0x2c], eax
mov eax, edx
or eax, dword [ebp - 0x2d7c]
jne 0x467b5f
mov eax, dword [edi + 0x48]
cmp dword [eax + 0x48], 0
jne 0x467b5f
mov ecx, dword [ebp - 0x2dac]
cmp ecx, esi
ja 0x467adf
mov eax, dword [ebp - 0x2d84]
jb 0x467ad1
cmp eax, ebx
jae 0x467adf
mov dword [ebp - 0x2da0], eax
mov dword [ebp - 0x2d7c], ecx
jmp 0x467aed
mov eax, ebx
mov dword [ebp - 0x2da0], ebx
mov dword [ebp - 0x2d7c], esi
mov edx, dword [ebp - 0x2d74]
push eax
push dword [ebp - 0x2d70]
mov eax, dword [edi + 0x38]
push edx
push dword [ebp - 0x2d88]
push dword [edi + 0x44]
call eax
mov edx, dword [ebp - 0x2da0]
add esp, 0x14
xor ecx, ecx
cmp eax, edx
jne 0x467a3e
mov eax, dword [ebp - 0x2d7c]
cmp ecx, eax
jne 0x467a3e
add dword [ebp - 0x2d88], edx
xorps xmm0, xmm0
movlpd qword [ebp - 0x2dcc], xmm0
adc dword [ebp - 0x2d74], eax
sub ebx, edx
mov ecx, dword [ebp - 0x2dcc]
sbb esi, eax
mov dword [ebp - 0x2d90], ecx
mov eax, dword [ebp - 0x2dc8]
mov dword [ebp - 0x2d98], eax
jmp 0x467b65
mov ecx, dword [ebp - 0x2d90]
mov eax, ebx
mov dword [ebp - 0x30], edx
or eax, esi
je 0x467b75
mov eax, 2
jmp 0x467b77
xor eax, eax
mov edx, dword [ebp - 0x2d70]
push eax
lea eax, [ebp - 0x2c]
push eax
push dword [ebp - 0x2d9c]
lea eax, [ebp - 0x30]
push dword [ebp - 0x2db0]
lea edx, [ecx + edx]
push eax
lea ecx, [ebp - 0x2d6c]
call fcn.004650d0
mov edx, dword [ebp - 0x2da0]
add esp, 0x14
mov ecx, dword [ebp - 0x30]
sub edx, ecx
mov dword [ebp - 0x2da8], eax
sbb dword [ebp - 0x2d7c], 0
add dword [ebp - 0x2d90], ecx
mov eax, dword [ebp - 0x2c]
adc dword [ebp - 0x2d98], 0
mov dword [ebp - 0x2da0], edx
test eax, eax
je 0x467c56
push dword [ebp - 0x2db8]
push eax
push 1
push dword [ebp - 0x2d9c]
call fcn.004bbc81
mov ecx, dword [ebp - 0x2c]
add esp, 0x10
cmp eax, ecx
jne 0x467a3e
mov edx, dword [ebp - 0x2d9c]
push ecx
mov ecx, dword [ebp - 0x2d8c]
call fcn.00465020
mov ecx, dword [ebp - 0x2d80]
add esp, 4
mov dword [ebp - 0x2d8c], eax
mov eax, dword [ebp - 0x2d78]
add eax, dword [ebp - 0x2c]
mov dword [ebp - 0x2d78], eax
adc ecx, 0
mov dword [ebp - 0x2d80], ecx
cmp ecx, dword [ebp - 0x250]
ja 0x467a3e
jb 0x467c4e
cmp eax, dword [ebp - 0x254]
ja 0x467a3e
mov edx, dword [ebp - 0x2da0]
jmp 0x467c5c
mov eax, dword [ebp - 0x2d78]
mov ecx, dword [ebp - 0x2da8]
cmp ecx, 1
je 0x467a80
cmp ecx, 2
je 0x467a80
jmp 0x467ce8
mov eax, dword [edi + 0x48]
cmp dword [eax + 0x48], 0
je 0x467d01
test edx, edx
ja 0x467e99
jb 0x467c97
cmp dword [ebp - 0x30], 0xffffffff
ja 0x467e99
push dword [ebp - 0x2db8]
mov eax, dword [ebp - 0x25c]
push eax
push 1
push ecx
call fcn.004bbc81
add esp, 0x10
xor ecx, ecx
cmp eax, dword [ebp - 0x2d9c]
jne 0x467cdf
cmp ecx, dword [ebp - 0x2d98]
jne 0x467cdf
push dword [ebp - 0x2db4]
mov edx, dword [ebp - 0x2d70]
call fcn.00465020
add esp, 4
mov dword [ebp - 0x2d8c], eax
xor ecx, ecx
jmp 0x467ce8
or ecx, 0xffffffff
mov dword [ebp - 0x2da8], ecx
test ecx, ecx
jne 0x467e35
mov ecx, dword [ebp - 0x2d78]
mov edx, dword [ebp - 0x2d80]
jmp 0x467e0a
mov eax, ebx
or eax, esi
je 0x467dfe
mov eax, dword [ebp - 0x2dc0]
mov dword [ebp - 0x2d80], eax
mov eax, dword [ebp - 0x2dc4]
mov dword [ebp - 0x2d78], eax
mov ecx, dword [ebp - 0x2dac]
cmp ecx, esi
ja 0x467d3f
mov eax, dword [ebp - 0x2d84]
jb 0x467d39
cmp eax, ebx
jae 0x467d3f
mov esi, eax
mov ebx, ecx
jmp 0x467d44
mov esi, ebx
mov ebx, dword [ebp - 0x2c]
mov edx, dword [ebp - 0x2d74]
mov eax, dword [edi + 0x38]
push esi
push dword [ebp - 0x2d70]
push edx
push dword [ebp - 0x2d88]
push dword [edi + 0x44]
call eax
add esp, 0x14
xor ecx, ecx
cmp eax, esi
jne 0x467a3e
cmp ecx, ebx
jne 0x467a3e
mov edx, dword [ebp - 0x2d70]
mov ecx, dword [ebp - 0x2d8c]
push esi
call fcn.00465020
push dword [ebp - 0x2db8]
mov dword [ebp - 0x2d8c], eax
push esi
push 1
push dword [ebp - 0x2d70]
call fcn.004bbc81
add esp, 0x14
xor ecx, ecx
cmp eax, esi
jne 0x467a3e
cmp ecx, ebx
jne 0x467a3e
add dword [ebp - 0x2d88], esi
mov ecx, dword [ebp - 0x2d78]
adc dword [ebp - 0x2d74], ebx
add ecx, esi
mov edx, dword [ebp - 0x2d80]
adc edx, ebx
mov dword [ebp - 0x2d78], ecx
sub dword [ebp - 0x2d90], esi
mov esi, dword [ebp - 0x2c]
sbb esi, ebx
mov dword [ebp - 0x2d80], edx
mov ebx, dword [ebp - 0x2d90]
mov eax, ebx
or eax, esi
mov dword [ebp - 0x2c], esi
jne 0x467d23
jmp 0x467e0a
mov edx, dword [ebp - 0x2dc0]
mov ecx, dword [ebp - 0x2dc4]
cmp ecx, dword [ebp - 0x254]
jne 0x467a3e
cmp edx, dword [ebp - 0x250]
jne 0x467a3e
mov eax, dword [ebp - 0x2d8c]
cmp eax, dword [ebp - 0x264]
je 0x467e35
or ebx, 0xffffffff
jmp 0x467e3b
mov ebx, dword [ebp - 0x2da8]
mov eax, dword [edi + 0x48]
cmp dword [eax + 0x48], 0
jne 0x467e55
push dword [ebp - 0x2d70]
mov eax, dword [edi + 0x2c]
push dword [edi + 0x34]
call eax
add esp, 8
mov eax, dword [ebp - 0x2db0]
test eax, eax
je 0x467e6b
push eax
push dword [edi + 0x34]
mov eax, dword [edi + 0x2c]
call eax
add esp, 8
xor eax, eax
test ebx, ebx
sete al
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 8]
xor ecx, ebp
call fcn.004b323e
mov esp, ebp
pop ebp
ret
mov eax, 1
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 8]
xor ecx, ebp
call fcn.004b323e
mov esp, ebp
pop ebp
ret
mov ecx, dword [ebp - 8]
xor eax, eax
pop edi
pop esi
xor ecx, ebp
pop ebx
call fcn.004b323e
mov esp, ebp
pop ebp
ret