Function at 0x4055c0
Capabilities:
Write file on windows

Disassembly:
mov eax, dword [0x4670a8]
sub esp, 0x624
or eax, 0xaa937574
and dword [0x46a40c], eax
inc dword [0x4670a8]
push edi
mov edi, dword [esp + 0x62c]
mov ecx, edi
call fcn.0042a160
cmp eax, 0x8000
jbe 0x405a7c
movzx eax, word [0x45bf0e]
movsx ecx, ax
mov eax, dword [0x467480]
sub ecx, eax
mov word [0x45bf0e], cx
movsx eax, word [0x4587f0]
shl eax, 6
add dword [0x466adc], eax
movzx eax, word [0x45c318]
mov ecx, dword [0x45f450]
cwde
or ecx, eax
mov word [0x45c318], cx
mov ecx, dword [0x4686fc]
mov eax, dword [0x4683d8]
and ecx, 0x2c758eff
inc dword [0x4683d8]
xor eax, ecx
cmp eax, 0x49200aa3
jne 0x40565f
mov dword [0x467890], 0xff9d7fdf
push ebx
lea eax, [esp + 8]
push esi
push eax
call fcn.0041c290
movsx ecx, word [0x459c74]
mov edx, 0x21e5f79
sub edx, ecx
mov esi, eax
movzx ecx, word [0x45ce5c]
or ecx, edx
or ecx, 0xdf8d14b5
mov word [0x45ce5c], cx
call fcn.004284d0
movzx ecx, al
and ecx, 0x80000003
jns 0x4056a6
dec ecx
or ecx, 0xfffffffc
inc ecx
add ecx, 7
lea eax, [esp + 0x10]
push ecx
add eax, esi
push eax
call fcn.0042a010
or dword [0x45f42c], 0x418e3e94
push 5
push 0x37b7
call fcn.00423d70
movzx ecx, word [0x458eb2]
mov ebx, eax
lea eax, [esp + 0x20]
and ecx, 0xfbfcecae
push ebx
mov word [0x458eb2], cx
push eax
call fcn.0042af90
movsx ecx, word [0x45d0ec]
add esp, 0x1c
or ecx, 0x19cf6575
cmp ecx, 0x91d02c4f
jge 0x405720
mov eax, dword [0x4629e8]
and eax, 0x17b6ca0c
cmp eax, 0x917655f6
jle 0x405720
or dword [0x4606e0], 0xeee6b534
push 3
push 0x1694
call fcn.00423d70
mov ecx, dword [0x45f628]
mov esi, eax
add ecx, 0x7bb9a397
or dword [0x4658d0], ecx
push ebx
push 5
call fcn.00407690
and dword [0x468690], 0xd003bc96
lea eax, [esp + 0x1c]
push esi
push eax
call fcn.0042bf61
movsx ecx, word [0x45bc72]
mov ebx, eax
add ecx, 0xb3f8be4
or ecx, 0xe695d04e
and dword [0x468a70], ecx
push esi
push 3
call fcn.00407690
mov eax, dword [0x464dfc]
add esp, 0x20
xor eax, dword [0x45f6a8]
mov dword [0x464dfc], eax
test ebx, ebx
je 0x405a0e
mov eax, dword [0x464ab8]
mov ecx, edi
sar eax, 7
and eax, 0xc607c859
or dword [0x4621ec], eax
mov eax, dword [0x46862c]
or eax, dword [0x4615d0]
push ebx
mov dword [0x46862c], eax
dec dword [0x4615d0]
push 1
call fcn.0042a160
push eax
mov ecx, edi
call fcn.0041ae80
push eax
call fcn.0042c114
add dword [0x461cb8], 0x7fd6ef30
push ebx
call fcn.0042bc36
mov eax, dword [0x46503c]
mov edx, 0x148e8937
sub edx, eax
add esp, 0x14
and edx, 0xb257f0c7
mov ecx, edi
xor dword [0x46b350], edx
call fcn.00422440
inc word [0x459f98]
mov ax, word [0x459f98]
cwde
imul eax, dword [0x468e68]
push 0x104
mov byte [esp + 0x22c], 0
mov dword [0x468e68], eax
movsx eax, word [0x45b40a]
mov ecx, dword [0x46609c]
shl eax, 8
add eax, 0xb24fdcc5
xor ecx, eax
lea eax, [esp + 0x128]
push eax
xor ecx, 0xc435d36e
mov dword [0x46609c], ecx
push 0
call dword [0x4585b8]
movsx eax, word [0x45c9c0]
imul eax, eax, 0x2fb17ca4
add eax, 0x7d2cae54
cmp eax, 0xef7cee00
jge 0x405896
movzx eax, word [0x45c30c]
imul eax, eax, 0x8e210004
mov word [0x45c30c], ax
jmp 0x4058af
mov ecx, dword [0x464be8]
mov eax, dword [0x461d38]
and ecx, 0x6cf21f08
imul eax, ecx
mov dword [0x461d38], eax
push 0x15
mov byte [esp + 0x630], 0
add dword [0x46b198], 0x79cfffe8
push 0xfdd
call fcn.00423d70
imul ecx, dword [0x46020c], 0xd18ac5e4
mov esi, eax
push dword [0x4584ac]
lea eax, [esp + 0x130]
push dword [0x458494]
push eax
lea eax, [esp + 0x240]
mov dword [0x46020c], ecx
push esi
push eax
call fcn.0042c360
dec dword [0x467e8c]
add esp, 0x1c
mov eax, dword [0x467e8c]
cmp eax, 0x41021508
jge 0x405941
mov eax, dword [0x468588]
mov ecx, dword [0x461544]
sub ecx, eax
mov eax, dword [0x463184]
dec dword [0x468588]
xor eax, ecx
cmp eax, 0x53c37650
jne 0x405941
add dword [0x45ed18], 0xf48d8713
push esi
push 0x15
call fcn.00407690
push dword [0x4584ac]
mov dword [0x46538c], 0x624804e4
call fcn.0040d170
add dword [0x468954], 0x2e7f031c
lea eax, [esp + 0x238]
push eax
lea eax, [esp + 0x1c]
push eax
call fcn.00405ff0
dec dword [0x464544]
mov eax, dword [0x464544]
movzx ecx, word [0x45bd82]
imul ecx, eax
lea eax, [esp + 0x240]
push 0x401
push 0
push eax
mov word [0x45bd82], cx
call fcn.0042cb60
xor dword [0x4685ac], 0x4b9e4479
lea eax, [esp + 0x144]
push 0x105
push 0
push eax
call fcn.0042cb60
mov eax, dword [0x46a1b8]
mov ecx, 0x528f1a9f
sub ecx, eax
add esp, 0x2c
mov eax, dword [0x461404]
imul eax, ecx
push 0x15f90
mov dword [0x461404], eax
call dword [0x458614]
or dword [0x4641d0], 0x63fabff3
lea eax, [esp + 0xc]
push eax
call dword [0x45855c]
and dword [0x465a14], 0xfe67b72d
dec word [0x45d8fa]
mov ax, word [0x45d8fa]
cwde
imul eax, eax, 0x4216a5f
pop esi
pop ebx
and eax, 0xae3adf2f
cmp eax, 0x95209504
jle 0x405a47
mov eax, dword [0x463ab4]
sub eax, 0x5e5c928e
and eax, 0xb145f877
xor dword [0x462ae0], eax
jmp 0x405a51
and dword [0x46746c], 0x5f5c18a1
push 0x118
lea eax, [esp + 8]
push 0
push eax
call fcn.0042cb60
mov ecx, dword [0x464b40]
add esp, 0xc
movzx eax, word [0x45d452]
not ecx
xor eax, ecx
mov word [0x45d452], ax
mov ecx, dword [0x46af14]
movsx eax, word [0x45e884]
or ecx, 0x9ef52aa3
pop edi
cmp ecx, eax
jl 0x405aae
mov eax, dword [0x468bf0]
sar eax, 2
add eax, 0x608f0538
xor dword [0x46add8], eax
add esp, 0x624
ret
movzx eax, word [0x45ae18]
sub eax, 0x68606561
mov word [0x45ae18], ax
add esp, 0x624
ret