Function at 0x447320
Capabilities:
Write file on windows

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x65c
mov eax, 4
imul ecx, eax, 0x4385
mov edx, dword [ecx + 0x49c858]
not edx
mov eax, 4
imul ecx, eax, 0xa9
mov eax, dword [ecx + 0x49c858]
and eax, 0xda434335
or edx, eax
mov ecx, 4
imul eax, ecx, 0x1c57
mov dword [eax + 0x49c858], edx
mov ecx, dword [ebp + 8]
call fcn.0044e040
cmp eax, 0x8000
jbe 0x447f77
mov ecx, 2
imul edx, ecx, 0xa77
mov eax, 2
imul ecx, eax, 0x484c
movsx eax, word [ecx + 0x48f8a0]
imul ecx, eax, 0x5fa03ed2
mov eax, 4
imul eax, eax, 0xf79
and ecx, dword [eax + 0x49c858]
movsx edx, word [edx + 0x48f8a0]
or edx, ecx
mov eax, 2
imul ecx, eax, 0xa77
mov word [ecx + 0x48f8a0], dx
mov edx, 4
imul eax, edx, 0xf79
mov ecx, dword [eax + 0x49c858]
add ecx, 1
mov edx, 4
imul eax, edx, 0xf79
mov dword [eax + 0x49c858], ecx
mov ecx, 4
imul edx, ecx, 0x4ce4
mov eax, 4
imul ecx, eax, 0x1f11
mov eax, 0x18b6f541
sub eax, dword [ecx + 0x49c858]
mov ecx, 4
imul ecx, ecx, 0x4fba
mov ecx, dword [ecx + 0x49c858]
not ecx
or eax, ecx
mov edx, dword [edx + 0x49c858]
sub edx, eax
mov eax, 4
imul ecx, eax, 0x4ce4
mov dword [ecx + 0x49c858], edx
mov edx, 4
imul eax, edx, 0x47e5
imul ecx, dword [eax + 0x49c858], 0x2765498f
mov edx, 4
imul eax, edx, 0x47e5
mov dword [eax + 0x49c858], ecx
mov ecx, 2
imul edx, ecx, 0x52ee
mov eax, 0xffffae50
mov word [edx + 0x48f8a0], ax
lea ecx, [ebp - 0x150]
push ecx
call fcn.0043d5c0
add esp, 4
mov dword [ebp - 0x28], eax
mov edx, 2
imul eax, edx, 0x3b01
movsx ecx, word [eax + 0x48f8a0]
add ecx, 0x6ca21d4
mov edx, 2
imul eax, edx, 0x3b01
mov word [eax + 0x48f8a0], cx
call fcn.0040f730
movzx ecx, al
and ecx, 0x80000003
jns 0x4474c9
dec ecx
or ecx, 0xfffffffc
inc ecx
add ecx, 7
push ecx
mov edx, dword [ebp - 0x28]
lea eax, [ebp + edx - 0x150]
push eax
call fcn.004573e0
add esp, 8
mov ecx, 4
imul edx, ecx, 0x61ca
mov eax, dword [edx + 0x49c858]
add eax, 0x21b88a5c
mov ecx, 4
imul edx, ecx, 0x61ca
mov dword [edx + 0x49c858], eax
push 5
push 0x1d5c
call fcn.00457b90
add esp, 8
mov dword [ebp - 0x24], eax
mov eax, 4
imul ecx, eax, 0x39a0
mov edx, 4
imul eax, edx, 0xb20
mov edx, dword [eax + 0x49c858]
sub edx, 0x30a07e08
and edx, 0x9d312dc6
mov eax, dword [ecx + 0x49c858]
imul eax, edx
mov ecx, 4
imul edx, ecx, 0x39a0
mov dword [edx + 0x49c858], eax
mov eax, dword [ebp - 0x24]
push eax
lea ecx, [ebp - 0x150]
push ecx
call fcn.00464b00
add esp, 8
mov edx, 4
imul eax, edx, 0x6762
mov ecx, dword [eax + 0x49c858]
sub ecx, 0x62165fb2
mov edx, 4
imul eax, edx, 0x6762
mov dword [eax + 0x49c858], ecx
push 3
push 0xaf3
call fcn.00457b90
add esp, 8
mov dword [ebp - 0x20], eax
mov ecx, 4
imul edx, ecx, 0xc17
mov eax, 4
imul ecx, eax, 0x1bf8
mov eax, dword [ecx + 0x49c858]
not eax
xor eax, 0x28aca87f
mov ecx, dword [edx + 0x49c858]
and ecx, eax
mov edx, 4
imul eax, edx, 0xc17
mov dword [eax + 0x49c858], ecx
mov ecx, dword [ebp - 0x24]
push ecx
push 5
call fcn.00449720
add esp, 8
mov edx, 4
imul eax, edx, 0x1cbb
mov ecx, dword [eax + 0x49c858]
sub ecx, 0x9759e95
mov edx, 4
imul eax, edx, 0x1cbb
mov dword [eax + 0x49c858], ecx
mov ecx, dword [ebp - 0x20]
push ecx
lea edx, [ebp - 0x150]
push edx
call fcn.00465b61
add esp, 8
mov dword [ebp - 4], eax
mov eax, 4
imul ecx, eax, 0xbf8
mov edx, dword [ecx + 0x49c858]
sub edx, 1
mov dword [ebp - 0x10], edx
mov eax, 4
imul ecx, eax, 0xbf8
mov edx, dword [ebp - 0x10]
mov dword [ecx + 0x49c858], edx
mov eax, dword [ebp - 0x10]
xor eax, 0x910f0745
mov ecx, 4
imul edx, ecx, 0x1ec6
mov ecx, dword [edx + 0x49c858]
xor ecx, eax
mov edx, 4
imul eax, edx, 0x1ec6
mov dword [eax + 0x49c858], ecx
mov ecx, dword [ebp - 0x20]
push ecx
push 3
call fcn.00449720
add esp, 8
mov edx, 4
imul eax, edx, 0x395
mov ecx, dword [eax + 0x49c858]
sar ecx, 7
add ecx, 0x1a07255a
cmp ecx, 0xad0d5c6a
jge 0x44770d
mov edx, 4
imul eax, edx, 0x124e
cmp dword [eax + 0x49c858], 0x88dc6e9e
jl 0x44770b
mov ecx, 4
imul edx, ecx, 0x8f
mov eax, dword [edx + 0x49c858]
sub eax, 1
mov dword [ebp - 0x18], eax
mov ecx, 4
imul edx, ecx, 0x8f
mov eax, dword [ebp - 0x18]
mov dword [edx + 0x49c858], eax
mov edx, 2
imul eax, edx, 0x54e9
movsx edx, word [eax + 0x48f8a0]
jmp 0x447748
mov eax, 4
imul ecx, eax, 0x5d46
mov edx, 4
imul eax, edx, 0x11a9
mov edx, dword [eax + 0x49c858]
add edx, 0x4a2c0b1f
mov eax, dword [ecx + 0x49c858]
or eax, edx
mov ecx, 4
imul edx, ecx, 0x5d46
mov dword [edx + 0x49c858], eax
cmp dword [ebp - 4], 0
je 0x447e95
mov eax, 4
imul ecx, eax, 0xec5
mov edx, dword [ecx + 0x49c858]
xor edx, 0x17c7b1bc
mov eax, 4
imul ecx, eax, 0xec5
mov dword [ecx + 0x49c858], edx
mov edx, 4
imul eax, edx, 0xede
mov ecx, dword [eax + 0x49c858]
xor ecx, 0xa77b3eb3
or ecx, 0x1a06f98f
cmp ecx, 0xbf54f5c6
je 0x4477e3
mov edx, 4
imul eax, edx, 0x5224
mov ecx, 4
imul edx, ecx, 0x69a
mov ecx, dword [edx + 0x49c858]
sar ecx, 0xa
sub ecx, 0x244c5573
and ecx, 0x7508d8c4
mov edx, dword [eax + 0x49c858]
and edx, ecx
mov eax, 4
imul ecx, eax, 0x5224
mov dword [ecx + 0x49c858], edx
mov edx, dword [ebp - 4]
push edx
push 1
mov ecx, dword [ebp + 8]
call fcn.0044e040
push eax
mov ecx, dword [ebp + 8]
call fcn.004025e0
push eax
call fcn.00465d14
add esp, 0x10
mov eax, 2
imul ecx, eax, 0x18e3
movsx edx, word [ecx + 0x48f8a0]
and edx, 0x107f911b
mov eax, 4
imul ecx, eax, 0x550a
or edx, dword [ecx + 0x49c858]
mov dword [ebp - 0x30], edx
mov edx, 4
imul eax, edx, 0x550a
mov ecx, dword [eax + 0x49c858]
add ecx, 1
mov edx, 4
imul eax, edx, 0x550a
mov dword [eax + 0x49c858], ecx
mov ecx, 2
imul edx, ecx, 0x18e3
mov ax, word [edx + 0x48f8a0]
add ax, 1
mov ecx, 2
imul edx, ecx, 0x18e3
mov word [edx + 0x48f8a0], ax
cmp dword [ebp - 0x30], 0xc237d0b2
jge 0x4478c1
mov eax, 4
imul ecx, eax, 0x124b
mov edx, 4
imul eax, edx, 0xad0
mov edx, dword [eax + 0x49c858]
sub edx, 0x1ba6b2ec
mov eax, dword [ecx + 0x49c858]
imul eax, edx
mov ecx, 4
imul edx, ecx, 0x124b
mov dword [edx + 0x49c858], eax
mov eax, dword [ebp - 4]
push eax
call fcn.00465836
add esp, 4
mov ecx, 4
imul edx, ecx, 0x570b
mov eax, 2
imul ecx, eax, 0x47a7
movsx eax, word [ecx + 0x48f8a0]
shl eax, 1
mov ecx, dword [edx + 0x49c858]
add ecx, eax
mov edx, 4
imul eax, edx, 0x570b
mov dword [eax + 0x49c858], ecx
mov ecx, dword [ebp + 8]
call fcn.00407170
mov ecx, 2
imul edx, ecx, 0xf12
movsx eax, word [edx + 0x48f8a0]
mov ecx, 2
imul edx, ecx, 0x5ae3
movsx ecx, word [edx + 0x48f8a0]
not ecx
xor eax, ecx
mov dword [ebp - 0x34], eax
mov edx, 2
imul eax, edx, 0xf12
mov cx, word [eax + 0x48f8a0]
add cx, 1
mov edx, 2
imul eax, edx, 0xf12
mov word [eax + 0x48f8a0], cx
cmp dword [ebp - 0x34], 0xf6a26fe7
jle 0x4479b7
mov ecx, 4
imul edx, ecx, 0x398d
mov eax, dword [edx + 0x49c858]
sar eax, 5
sub eax, 0x1e18f8ef
or eax, 0x41235f21
cmp eax, 0x50144
jg 0x4479b5
mov ecx, 4
imul edx, ecx, 0x53b7
mov eax, dword [edx + 0x49c858]
and eax, 0xaeeac4f6
mov ecx, 4
imul edx, ecx, 0x53b7
mov dword [edx + 0x49c858], eax
jmp 0x4479e1
mov eax, 2
imul ecx, eax, 0x5397
movsx edx, word [ecx + 0x48f8a0]
add edx, 0x24286139
mov eax, 2
imul ecx, eax, 0x5397
mov word [ecx + 0x48f8a0], dx
mov edx, 1
imul eax, edx, 0x104
mov byte [ebp + eax - 0x258], 0
mov ecx, 4
imul edx, ecx, 0x44bc
mov eax, dword [edx + 0x49c858]
mov dword [ebp - 0x38], eax
mov ecx, 4
imul edx, ecx, 0x44bc
mov eax, dword [edx + 0x49c858]
add eax, 1
mov ecx, 4
imul edx, ecx, 0x44bc
mov dword [edx + 0x49c858], eax
cmp dword [ebp - 0x38], 0x58a4cd59
jle 0x447a96
mov eax, 4
imul ecx, eax, 0x4616
mov edx, dword [ecx + 0x49c858]
sub edx, 1
mov dword [ebp - 0xc], edx
mov eax, 4
imul ecx, eax, 0x4616
mov edx, dword [ebp - 0xc]
mov dword [ecx + 0x49c858], edx
mov eax, dword [ebp - 0xc]
xor eax, 0x87c58715
or eax, 0x63032415
mov ecx, 2
imul edx, ecx, 0xb5a
movsx ecx, word [edx + 0x48f8a0]
xor ecx, eax
mov edx, 2
imul eax, edx, 0xb5a
mov word [eax + 0x48f8a0], cx
jmp 0x447abc
mov ecx, 4
imul edx, ecx, 0x2233
imul eax, dword [edx + 0x49c858], 0xa3164170
mov ecx, 4
imul edx, ecx, 0x2233
mov dword [edx + 0x49c858], eax
push 0x104
lea eax, [ebp - 0x258]
push eax
push 0
call dword [0x48f7b8]
mov ecx, 4
imul edx, ecx, 0xdf1
mov eax, dword [edx + 0x49c858]
xor eax, 0x4ccbfa5c
cmp eax, 0x2497c3bb
jle 0x447b4b
mov ecx, 4
imul edx, ecx, 0x1ca1
mov eax, dword [edx + 0x49c858]
add eax, 1
mov dword [ebp - 0x14], eax
mov ecx, 4
imul edx, ecx, 0x1ca1
mov eax, dword [ebp - 0x14]
mov dword [edx + 0x49c858], eax
mov ecx, dword [ebp - 0x14]
xor ecx, 0xdeacb867
xor ecx, 0x3d7edf24
mov edx, 4
imul eax, edx, 0x1d5d
mov edx, dword [eax + 0x49c858]
or edx, ecx
mov eax, 4
imul ecx, eax, 0x1d5d
mov dword [ecx + 0x49c858], edx
mov edx, 1
shl edx, 0xa
mov byte [ebp + edx - 0x65c], 0
mov eax, 4
imul ecx, eax, 0x65df
mov edx, dword [ecx + 0x49c858]
xor edx, 0x1abcd69b
mov eax, 4
imul ecx, eax, 0x65df
mov dword [ecx + 0x49c858], edx
push 0x15
push 0x7c5
call fcn.00457b90
add esp, 8
mov dword [ebp - 0x1c], eax
mov edx, 4
imul eax, edx, 0x5f86
imul ecx, dword [eax + 0x49c858], 0x92e75d46
mov edx, 4
imul eax, edx, 0x5f86
mov dword [eax + 0x49c858], ecx
mov ecx, dword [0x48f6ac]
push ecx
mov edx, dword [0x48f694]
push edx
lea eax, [ebp - 0x258]
push eax
mov ecx, dword [ebp - 0x1c]
push ecx
lea edx, [ebp - 0x65c]
push edx
call fcn.00465f60
add esp, 0x14
mov eax, 4
imul ecx, eax, 0x3956
mov edx, dword [ecx + 0x49c858]
mov dword [ebp - 0x2c], edx
mov eax, 4
imul ecx, eax, 0x3956
mov edx, dword [ecx + 0x49c858]
sub edx, 1
mov eax, 4
imul ecx, eax, 0x3956
mov dword [ecx + 0x49c858], edx
cmp dword [ebp - 0x2c], 0x88f068ee
je 0x447c89
mov edx, 4
imul eax, edx, 0x3de9
mov ecx, 2
imul edx, ecx, 0x645d
movsx ecx, word [edx + 0x48f8a0]
or ecx, 0xa1e0312c
mov edx, dword [eax + 0x49c858]
sub edx, ecx
mov eax, 4
imul ecx, eax, 0x3de9
mov dword [ecx + 0x49c858], edx
mov edx, 2
imul eax, edx, 0x645d
mov cx, word [eax + 0x48f8a0]
add cx, 1
mov edx, 2
imul eax, edx, 0x645d
mov word [eax + 0x48f8a0], cx
mov ecx, dword [ebp - 0x1c]
push ecx
push 0x15
call fcn.00449720
add esp, 8
mov edx, 4
imul eax, edx, 0x1a60
mov dword [eax + 0x49c858], 0xcd8546ef
mov ecx, dword [0x48f6ac]
push ecx
call fcn.00447fb0
add esp, 4
mov edx, 4
imul eax, edx, 0x629
mov ecx, dword [eax + 0x49c858]
xor ecx, 0xc7b4ec0b
mov edx, 4
imul eax, edx, 0x629
mov dword [eax + 0x49c858], ecx
lea ecx, [ebp - 0x65c]
push ecx
lea edx, [ebp - 0x150]
push edx
call fcn.00430960
add esp, 8
mov eax, 4
imul ecx, eax, 0xb96
mov dword [ecx + 0x49c858], 0xccad28ad
push 0x401
push 0
lea edx, [ebp - 0x65c]
push edx
call fcn.00464a60
add esp, 0xc
mov eax, 4
imul ecx, eax, 0x2ef5
mov edx, dword [ecx + 0x49c858]
add edx, 1
mov dword [ebp - 8], edx
mov eax, 4
imul ecx, eax, 0x2ef5
mov edx, dword [ebp - 8]
mov dword [ecx + 0x49c858], edx
mov eax, dword [ebp - 8]
and eax, 0xe4d32d07
cmp eax, 0x65867694
je 0x447db6
mov ecx, 2
imul edx, ecx, 0x410f
movsx eax, word [edx + 0x48f8a0]
xor eax, 0xa170f9a4
cmp eax, 0x3e211bf6
je 0x447db6
mov ecx, 4
imul edx, ecx, 0x526f
mov eax, 4
imul ecx, eax, 0x2d69
mov eax, dword [ecx + 0x49c858]
or eax, 0xf85bf303
mov ecx, dword [edx + 0x49c858]
add ecx, eax
mov edx, 4
imul eax, edx, 0x526f
mov dword [eax + 0x49c858], ecx
push 0x105
push 0
lea ecx, [ebp - 0x258]
push ecx
call fcn.00464a60
add esp, 0xc
mov edx, 4
imul eax, edx, 0x15d8
mov ecx, 4
imul edx, ecx, 0x2cd2
mov ecx, dword [edx + 0x49c858]
xor ecx, 0xc1b0d56d
or ecx, 0x4775cf2f
mov edx, dword [eax + 0x49c858]
and edx, ecx
mov eax, 4
imul ecx, eax, 0x15d8
mov dword [ecx + 0x49c858], edx
mov edx, 4
imul eax, edx, 0x2cd2
mov ecx, dword [eax + 0x49c858]
add ecx, 1
mov edx, 4
imul eax, edx, 0x2cd2
mov dword [eax + 0x49c858], ecx
push 0x15f90
call dword [0x48f814]
mov ecx, 4
imul edx, ecx, 0x25ef
mov eax, dword [edx + 0x49c858]
sar eax, 8
mov ecx, 4
imul edx, ecx, 0xeee
mov dword [edx + 0x49c858], eax
lea eax, [ebp - 0x150]
push eax
call dword [0x48f75c]
mov ecx, 4
imul edx, ecx, 0x6563
imul eax, dword [edx + 0x49c858], 0xf3284222
mov ecx, 4
imul edx, ecx, 0x6563
mov dword [edx + 0x49c858], eax
mov eax, 2
imul ecx, eax, 0x4b6d
mov edx, 4
imul eax, edx, 0x4e7a
mov edx, dword [eax + 0x49c858]
or edx, 0xab54bb4a
movsx eax, word [ecx + 0x48f8a0]
sub eax, edx
mov ecx, 2
imul edx, ecx, 0x4b6d
mov word [edx + 0x48f8a0], ax
mov eax, 4
imul ecx, eax, 0x4e7a
mov edx, dword [ecx + 0x49c858]
sub edx, 1
mov eax, 4
imul ecx, eax, 0x4e7a
mov dword [ecx + 0x49c858], edx
push 0x118
push 0
lea edx, [ebp - 0x150]
push edx
call fcn.00464a60
add esp, 0xc
mov eax, 2
imul ecx, eax, 0x4984
movsx edx, word [ecx + 0x48f8a0]
or edx, 0x4e283a01
cmp edx, 0xc6cfb9fb
jl 0x447f77
mov eax, 4
imul ecx, eax, 0x279d
mov edx, dword [ecx + 0x49c858]
sar edx, 4
and edx, 0xa114585c
cmp edx, 0xde1b2ce7
jne 0x447f77
mov eax, 4
imul ecx, eax, 0x35e0
mov edx, dword [ecx + 0x49c858]
or edx, 0x2bac7ee7
mov eax, 4
imul ecx, eax, 0x35e0
mov dword [ecx + 0x49c858], edx
mov edx, 2
imul eax, edx, 0x3108
movsx ecx, word [eax + 0x48f8a0]
and ecx, 0xf2392c44
mov edx, 2
imul eax, edx, 0x3108
mov word [eax + 0x48f8a0], cx
mov esp, ebp
pop ebp
ret