Function at 0x45f230
Capabilities:
Encrypt data using chaskey

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x158
push esi
push edi
mov eax, 2
imul ecx, eax, 0x8a5
movsx edx, word [ecx + 0x490dc0]
or edx, 0x98955621
mov eax, 2
imul ecx, eax, 0x8a5
mov word [ecx + 0x490dc0], dx
mov edx, 4
imul eax, edx, 0x1a7e
mov ecx, 4
imul edx, ecx, 0x2121
mov eax, dword [eax + 0x4952f8]
imul eax, dword [edx + 0x4952f8]
mov ecx, 4
imul edx, ecx, 0x1a7e
mov dword [edx + 0x4952f8], eax
mov eax, 4
imul ecx, eax, 0xf83
mov edx, 4
imul eax, edx, 0x95d
mov edx, dword [eax + 0x4952f8]
not edx
mov eax, dword [ecx + 0x4952f8]
or eax, edx
mov ecx, 4
imul edx, ecx, 0xf83
mov dword [edx + 0x4952f8], eax
mov eax, 4
imul ecx, eax, 0x141
imul edx, dword [ecx + 0x4952f8], 0x948f9a89
mov eax, 4
imul ecx, eax, 0x141
mov dword [ecx + 0x4952f8], edx
mov dword [ebp - 4], 0
jmp 0x45f308
mov edx, dword [ebp - 4]
add edx, 1
mov dword [ebp - 4], edx
cmp dword [ebp - 4], 0x10
je 0x45f4c6
mov eax, 2
imul ecx, eax, 0x1f81
mov edx, 4
imul eax, edx, 0x2037
mov edx, dword [eax + 0x4952f8]
sar edx, 8
xor edx, 0xc633ce00
movsx eax, word [ecx + 0x490dc0]
add eax, edx
mov ecx, 2
imul edx, ecx, 0x1f81
mov word [edx + 0x490dc0], ax
mov eax, 4
imul ecx, eax, 0x1d57
mov edx, 4
imul eax, edx, 0xfa3
mov edx, dword [eax + 0x4952f8]
sar edx, 3
xor edx, 0x19e4e80e
mov eax, dword [ecx + 0x4952f8]
imul eax, edx
mov ecx, 4
imul edx, ecx, 0x1d57
mov dword [edx + 0x4952f8], eax
mov eax, dword [ebp - 4]
mov ecx, dword [ebp + 0xc]
movzx edx, byte [ecx + eax*4]
shl edx, 0x18
mov eax, dword [ebp - 4]
mov ecx, dword [ebp + 0xc]
movzx eax, byte [ecx + eax*4 + 1]
shl eax, 0x10
or edx, eax
mov ecx, dword [ebp - 4]
mov eax, dword [ebp + 0xc]
movzx ecx, byte [eax + ecx*4 + 2]
shl ecx, 8
or edx, ecx
mov eax, dword [ebp - 4]
mov ecx, dword [ebp + 0xc]
movzx eax, byte [ecx + eax*4 + 3]
or edx, eax
mov ecx, dword [ebp - 4]
mov dword [ebp + ecx*4 - 0x158], edx
mov edx, 4
imul eax, edx, 0x1c2b
mov ecx, dword [eax + 0x4952f8]
add ecx, 0x61c31274
mov edx, 4
imul eax, edx, 0x1c2b
mov dword [eax + 0x4952f8], ecx
mov ecx, 2
imul edx, ecx, 0x13a6
movsx eax, word [edx + 0x490dc0]
imul ecx, eax, 0xfbfb5fa7
mov edx, 2
imul eax, edx, 0x13a6
mov word [eax + 0x490dc0], cx
mov ecx, 4
imul edx, ecx, 0x1917
mov eax, dword [edx + 0x4952f8]
add eax, 1
mov dword [ebp - 0x4c], eax
mov ecx, 4
imul edx, ecx, 0x1917
mov eax, dword [ebp - 0x4c]
mov dword [edx + 0x4952f8], eax
mov ecx, 4
imul edx, ecx, 0x6d0
mov eax, dword [edx + 0x4952f8]
sar eax, 2
imul eax, dword [ebp - 0x4c]
cmp eax, 0xfd8cbf2
jl 0x45f499
mov ecx, 4
imul edx, ecx, 0x18aa
imul eax, dword [edx + 0x4952f8], 0x9bf9fafb
mov ecx, 4
imul edx, ecx, 0x18aa
mov dword [edx + 0x4952f8], eax
jmp 0x45f4c1
mov eax, 4
imul ecx, eax, 0x1237
mov edx, dword [ecx + 0x4952f8]
sub edx, 0x7347b7d7
mov eax, 4
imul ecx, eax, 0x1237
mov dword [ecx + 0x4952f8], edx
jmp 0x45f2ff
mov edx, 4
imul eax, edx, 0x1e0a
mov ecx, dword [eax + 0x4952f8]
sub ecx, 1
mov dword [ebp - 0x40], ecx
mov edx, 4
imul eax, edx, 0x1e0a
mov ecx, dword [ebp - 0x40]
mov dword [eax + 0x4952f8], ecx
mov edx, 2
imul eax, edx, 0x1595
mov cx, word [ebp - 0x40]
mov word [eax + 0x490dc0], cx
push 0x24
mov edx, dword [ebp + 8]
add edx, 8
push edx
lea eax, [ebp - 0x30]
push eax
call fcn.00462590
add esp, 0xc
mov ecx, 2
imul edx, ecx, 0x130e
mov ax, word [edx + 0x490dc0]
add ax, 1
mov word [ebp - 8], ax
mov ecx, 2
imul edx, ecx, 0x130e
mov ax, word [ebp - 8]
mov word [edx + 0x490dc0], ax
mov ecx, 4
imul edx, ecx, 0x1d24
mov eax, dword [edx + 0x4952f8]
add eax, 1
mov dword [ebp - 0x44], eax
mov ecx, 4
imul edx, ecx, 0x1d24
mov eax, dword [ebp - 0x44]
mov dword [edx + 0x4952f8], eax
mov ecx, 2
imul edx, ecx, 0x235
movsx eax, word [edx + 0x490dc0]
not eax
or eax, dword [ebp - 0x44]
movsx ecx, word [ebp - 8]
and ecx, 0xe5a06871
cmp ecx, eax
jg 0x45f5c4
mov edx, 4
imul eax, edx, 0x25f
mov ecx, dword [eax + 0x4952f8]
xor ecx, 0xc11c2c97
mov edx, 4
imul eax, edx, 0x25f
mov dword [eax + 0x4952f8], ecx
push 0x100
push 0x1e95
call fcn.00432680
add esp, 8
mov dword [ebp - 0x3c], eax
mov ecx, 4
imul edx, ecx, 0x10b9
mov eax, dword [edx + 0x4952f8]
xor eax, 0x6daf4159
mov ecx, 2
imul edx, ecx, 0x1061
mov word [edx + 0x490dc0], ax
mov dword [ebp - 4], 0
jmp 0x45f613
mov eax, dword [ebp - 4]
add eax, 1
mov dword [ebp - 4], eax
cmp dword [ebp - 4], 0x40
je 0x45fe74
mov ecx, 4
imul edx, ecx, 0xdec
mov eax, dword [edx + 0x4952f8]
and eax, 0x22bdf5c8
mov ecx, 4
imul edx, ecx, 0xdec
mov dword [edx + 0x4952f8], eax
cmp dword [ebp - 4], 0xf
jle 0x45f90d
mov eax, 4
imul ecx, eax, 0x60c
mov edx, dword [ecx + 0x4952f8]
sar edx, 8
mov eax, 0xda052709
sub eax, edx
mov ecx, 4
imul edx, ecx, 0xac6
mov ecx, dword [edx + 0x4952f8]
not ecx
and ecx, 0x8b93d8e7
cmp eax, ecx
jle 0x45f69b
mov edx, 4
imul eax, edx, 0x1511
mov dword [eax + 0x4952f8], 0x2a66f21e
mov ecx, dword [ebp - 4]
mov edx, dword [ebp + ecx*4 - 0x160]
shr edx, 0x11
mov eax, dword [ebp - 4]
mov ecx, dword [ebp + eax*4 - 0x160]
shl ecx, 0xf
or edx, ecx
mov eax, dword [ebp - 4]
mov ecx, dword [ebp + eax*4 - 0x160]
shr ecx, 0x13
mov eax, dword [ebp - 4]
mov eax, dword [ebp + eax*4 - 0x160]
shl eax, 0xd
or ecx, eax
xor edx, ecx
mov ecx, dword [ebp - 4]
mov eax, dword [ebp + ecx*4 - 0x160]
shr eax, 0xa
xor edx, eax
mov ecx, dword [ebp - 4]
mov dword [ebp + ecx*4 - 0x158], edx
mov edx, 4
imul eax, edx, 0x14b6
mov ecx, dword [eax + 0x4952f8]
mov dword [ebp - 0x50], ecx
mov edx, 4
imul eax, edx, 0x14b6
mov ecx, dword [eax + 0x4952f8]
sub ecx, 1
mov edx, 4
imul eax, edx, 0x14b6
mov dword [eax + 0x4952f8], ecx
cmp dword [ebp - 0x50], 0x5c154359
jl 0x45f745
mov ecx, 4
imul edx, ecx, 0x92
mov dword [edx + 0x4952f8], 0xb65eed33
mov eax, dword [ebp - 4]
mov ecx, dword [ebp + eax*4 - 0x158]
mov edx, dword [ebp - 4]
add ecx, dword [ebp + edx*4 - 0x174]
mov eax, dword [ebp - 4]
mov dword [ebp + eax*4 - 0x158], ecx
mov ecx, 4
imul edx, ecx, 0x1e4a
mov eax, dword [edx + 0x4952f8]
not eax
cmp eax, 0x2ce0f25d
jl 0x45f7df
mov ecx, 4
imul edx, ecx, 0x19bd
mov eax, dword [edx + 0x4952f8]
add eax, 1
mov dword [ebp - 0x34], eax
mov ecx, 4
imul edx, ecx, 0x19bd
mov eax, dword [ebp - 0x34]
mov dword [edx + 0x4952f8], eax
mov ecx, 4
imul edx, ecx, 0x20fe
mov eax, dword [edx + 0x4952f8]
not eax
mov ecx, dword [ebp - 0x34]
sub ecx, eax
xor ecx, 0x7a396ed3
cmp ecx, 0xc010d0a2
je 0x45f7df
mov edx, 4
imul eax, edx, 0x1cb6
mov ecx, dword [eax + 0x4952f8]
mov edx, dword [ebp - 4]
mov eax, dword [ebp + edx*4 - 0x194]
shr eax, 7
mov ecx, dword [ebp - 4]
mov edx, dword [ebp + ecx*4 - 0x194]
shl edx, 0x19
or eax, edx
mov ecx, dword [ebp - 4]
mov edx, dword [ebp + ecx*4 - 0x194]
shr edx, 0x12
mov ecx, dword [ebp - 4]
mov ecx, dword [ebp + ecx*4 - 0x194]
shl ecx, 0xe
or edx, ecx
xor eax, edx
mov edx, dword [ebp - 4]
mov ecx, dword [ebp + edx*4 - 0x194]
shr ecx, 3
xor eax, ecx
mov edx, dword [ebp - 4]
add eax, dword [ebp + edx*4 - 0x158]
mov ecx, dword [ebp - 4]
mov dword [ebp + ecx*4 - 0x158], eax
mov edx, 4
imul eax, edx, 0xf18
mov ecx, dword [eax + 0x4952f8]
shl ecx, 5
mov edx, 4
imul eax, edx, 0x644
mov edx, dword [eax + 0x4952f8]
or edx, 0xc90a81ea
or edx, 0xc613dc12
cmp ecx, edx
jge 0x45f8c8
mov eax, 2
imul ecx, eax, 0xa8b
movsx edx, word [ecx + 0x490dc0]
not edx
mov eax, 2
imul ecx, eax, 0x1e1a
movsx eax, word [ecx + 0x490dc0]
or edx, eax
cmp edx, 0xcc5dfe64
je 0x45f8c8
mov ecx, 4
imul edx, ecx, 0x1e52
mov eax, dword [edx + 0x4952f8]
add eax, 0x30d88b38
mov ecx, 4
imul edx, ecx, 0x1e52
mov dword [edx + 0x4952f8], eax
mov eax, dword [ebp - 4]
mov ecx, dword [ebp + eax*4 - 0x158]
mov edx, dword [ebp - 4]
add ecx, dword [ebp + edx*4 - 0x198]
mov eax, dword [ebp - 4]
mov dword [ebp + eax*4 - 0x158], ecx
mov ecx, 4
imul edx, ecx, 0x12f2
mov eax, dword [edx + 0x4952f8]
sub eax, 0x2c4b4118
mov ecx, 4
imul edx, ecx, 0x12f2
mov dword [edx + 0x4952f8], eax
mov eax, 2
imul ecx, eax, 0x48f
mov edx, 4
imul eax, edx, 0x1f11
imul edx, dword [eax + 0x4952f8], 0x140c285e
movsx eax, word [ecx + 0x490dc0]
xor eax, edx
mov ecx, 2
imul edx, ecx, 0x48f
mov word [edx + 0x490dc0], ax
mov eax, 4
imul ecx, eax, 0x21d2
mov edx, dword [ecx + 0x4952f8]
sub edx, 0x7f7feeeb
mov eax, 4
imul ecx, eax, 0x21d2
mov dword [ecx + 0x4952f8], edx
mov edx, 4
imul eax, edx, 7
mov ecx, 4
shl ecx, 2
mov edx, dword [ebp + ecx - 0x30]
shr edx, 6
mov ecx, 4
shl ecx, 2
mov ecx, dword [ebp + ecx - 0x30]
shl ecx, 0x1a
or edx, ecx
mov ecx, 4
shl ecx, 2
mov ecx, dword [ebp + ecx - 0x30]
shr ecx, 0xb
mov esi, 4
shl esi, 2
mov esi, dword [ebp + esi - 0x30]
shl esi, 0x15
or ecx, esi
xor edx, ecx
mov ecx, 4
shl ecx, 2
mov ecx, dword [ebp + ecx - 0x30]
shr ecx, 0x19
mov esi, 4
shl esi, 2
mov esi, dword [ebp + esi - 0x30]
shl esi, 7
or ecx, esi
xor edx, ecx
mov eax, dword [ebp + eax - 0x30]
add eax, edx
mov ecx, 4
imul edx, ecx, 6
mov ecx, 4
shl ecx, 2
mov esi, 4
imul esi, esi, 5
mov edi, 4
imul edi, edi, 6
mov esi, dword [ebp + esi - 0x30]
xor esi, dword [ebp + edi - 0x30]
and esi, dword [ebp + ecx - 0x30]
xor esi, dword [ebp + edx - 0x30]
add eax, esi
mov edx, dword [ebp - 4]
mov ecx, dword [ebp - 0x3c]
add eax, dword [ecx + edx*4]
mov edx, dword [ebp - 4]
add eax, dword [ebp + edx*4 - 0x158]
mov dword [ebp - 0x48], eax
mov eax, 4
imul ecx, eax, 0x1b98
cmp dword [ecx + 0x4952f8], 0x8048122
jle 0x45fa7f
mov edx, 4
imul eax, edx, 0x1c43
mov ecx, 4
imul edx, ecx, 0xdd3
mov ecx, dword [edx + 0x4952f8]
shl ecx, 2
imul edx, ecx, 0x8f4885a4
mov eax, dword [eax + 0x4952f8]
add eax, edx
mov ecx, 4
imul edx, ecx, 0x1c43
mov dword [edx + 0x4952f8], eax
mov eax, 4
imul ecx, eax, 0
mov edx, dword [ebp + ecx - 0x30]
shr edx, 2
mov eax, 4
imul ecx, eax, 0
mov eax, dword [ebp + ecx - 0x30]
shl eax, 0x1e
or edx, eax
mov ecx, 4
imul eax, ecx, 0
mov ecx, dword [ebp + eax - 0x30]
shr ecx, 0xd
mov eax, 4
imul eax, eax, 0
mov eax, dword [ebp + eax - 0x30]
shl eax, 0x13
or ecx, eax
xor edx, ecx
mov ecx, 4
imul eax, ecx, 0
mov ecx, dword [ebp + eax - 0x30]
shr ecx, 0x16
mov eax, 4
imul eax, eax, 0
mov eax, dword [ebp + eax - 0x30]
shl eax, 0xa
or ecx, eax
xor edx, ecx
mov ecx, 4
imul eax, ecx, 0
mov ecx, 4
shl ecx, 0
mov eax, dword [ebp + eax - 0x30]
and eax, dword [ebp + ecx - 0x30]
mov ecx, 4
shl ecx, 1
mov esi, 4
imul esi, esi, 0
mov edi, 4
shl edi, 0
mov esi, dword [ebp + esi - 0x30]
or esi, dword [ebp + edi - 0x30]
and esi, dword [ebp + ecx - 0x30]
or eax, esi
add edx, eax
mov dword [ebp - 0x54], edx
mov edx, 2
imul eax, edx, 0x9f7
mov ecx, 0xffffd956
mov word [eax + 0x490dc0], cx
mov edx, 4
imul eax, edx, 3
mov ecx, dword [ebp + eax - 0x30]
add ecx, dword [ebp - 0x48]
mov edx, 4
imul eax, edx, 3
mov dword [ebp + eax - 0x30], ecx
mov ecx, 2
imul edx, ecx, 0x39a
mov ax, word [edx + 0x490dc0]
add ax, 1
mov word [ebp - 6], ax
mov ecx, 2
imul edx, ecx, 0x39a
mov ax, word [ebp - 6]
mov word [edx + 0x490dc0], ax
movsx ecx, word [ebp - 6]
add ecx, 0x43b50661
cmp ecx, 0x297ffd87
jl 0x45fbf8
mov edx, 4
imul eax, edx, 0x2295
mov ecx, dword [eax + 0x4952f8]
shl ecx, 8
and ecx, 0xe11b4f0a
mov edx, 4
imul eax, edx, 0x19d9
mov edx, dword [eax + 0x4952f8]
and edx, 0xd8211fd3
cmp ecx, edx
jle 0x45fbf8
mov eax, 2
imul ecx, eax, 0x10e7
movsx edx, word [ecx + 0x490dc0]
sub edx, 0x7bb5d7f3
mov eax, 2
imul ecx, eax, 0x10e7
mov word [ecx + 0x490dc0], dx
mov edx, dword [ebp - 0x48]
add edx, dword [ebp - 0x54]
mov eax, 4
imul ecx, eax, 7
mov dword [ebp + ecx - 0x30], edx
mov edx, 4
imul eax, edx, 0x33b
mov ecx, dword [eax + 0x4952f8]
or ecx, 0xf76e2fbc
cmp ecx, 0x992c6c0f
jl 0x45fc40
mov edx, 4
imul eax, edx, 0x1160
mov dword [eax + 0x4952f8], 0x8575fa79
jmp 0x45fc66
mov ecx, 4
imul edx, ecx, 0x1ee8
imul eax, dword [edx + 0x4952f8], 0x4dc3579d
mov ecx, 4
imul edx, ecx, 0x1ee8
mov dword [edx + 0x4952f8], eax
mov eax, 4
imul ecx, eax, 0x1059
cmp dword [ecx + 0x4952f8], 0xa7b3fc9a
jle 0x45fcee
mov edx, 4
imul eax, edx, 0x17f1
mov ecx, 4
imul edx, ecx, 0x194d
mov ecx, 4
imul ecx, ecx, 0x1f3c
mov ecx, dword [ecx + 0x4952f8]
shl ecx, 8
mov edx, dword [edx + 0x4952f8]
or edx, ecx
mov eax, dword [eax + 0x4952f8]
imul eax, edx
mov ecx, 4
imul edx, ecx, 0x17f1
mov dword [edx + 0x4952f8], eax
mov eax, 4
imul ecx, eax, 0x194d
mov edx, dword [ecx + 0x4952f8]
add edx, 1
mov eax, 4
imul ecx, eax, 0x194d
mov dword [ecx + 0x4952f8], edx
mov edx, 4
imul eax, edx, 0x237
mov ecx, 4
imul edx, ecx, 0x1c45
mov eax, dword [eax + 0x4952f8]
add eax, dword [edx + 0x4952f8]
mov dword [ebp - 0x58], eax
mov ecx, 4
imul edx, ecx, 0x237
mov eax, dword [edx + 0x4952f8]
sub eax, 1
mov ecx, 4
imul edx, ecx, 0x237
mov dword [edx + 0x4952f8], eax
cmp dword [ebp - 0x58], 0xc2df453c
jge 0x45fd69
mov eax, 4
imul ecx, eax, 0x65d
mov edx, dword [ecx + 0x4952f8]
and edx, 0x5ecf6ec
mov eax, 4
imul ecx, eax, 0x65d
mov dword [ecx + 0x4952f8], edx
mov dword [ebp - 0xc], 8
jmp 0x45fd7b
mov edx, dword [ebp - 0xc]
sub edx, 1
mov dword [ebp - 0xc], edx
cmp dword [ebp - 0xc], 0
je 0x45fde7
mov eax, 4
imul ecx, eax, 0x113f
mov edx, 4
imul eax, edx, 0xafe
mov edx, dword [eax + 0x4952f8]
add edx, 0x692d8902
and edx, 0x148e9540
mov eax, dword [ecx + 0x4952f8]
xor eax, edx
mov ecx, 4
imul edx, ecx, 0x113f
mov dword [edx + 0x4952f8], eax
mov eax, dword [ebp - 0xc]
mov ecx, dword [ebp - 0xc]
mov edx, dword [ebp + ecx*4 - 0x34]
mov dword [ebp + eax*4 - 0x30], edx
mov eax, 4
imul ecx, eax, 0xb75
mov dword [ecx + 0x4952f8], 0xa1e5375b
jmp 0x45fd72
mov edx, 4
imul eax, edx, 0x19b2
mov ecx, 4
imul edx, ecx, 0x2203
mov eax, dword [eax + 0x4952f8]
or eax, dword [edx + 0x4952f8]
mov ecx, 4
imul edx, ecx, 0x19b2
mov dword [edx + 0x4952f8], eax
mov eax, 4
shl eax, 3
mov ecx, 4
imul edx, ecx, 0
mov eax, dword [ebp + eax - 0x30]
mov dword [ebp + edx - 0x30], eax
mov ecx, 4
imul edx, ecx, 0x20a1
mov eax, 4
imul ecx, eax, 0x1b82
mov eax, dword [ecx + 0x4952f8]
shl eax, 3
and eax, 0x10fcacf5
mov ecx, dword [edx + 0x4952f8]
sub ecx, eax
mov edx, 4
imul eax, edx, 0x20a1
mov dword [eax + 0x4952f8], ecx
jmp 0x45f60a
mov ecx, 4
imul edx, ecx, 0xb61
mov eax, dword [edx + 0x4952f8]
and eax, 0x54579dd6
mov ecx, 4
imul edx, ecx, 0xb61
mov dword [edx + 0x4952f8], eax
mov eax, dword [ebp - 0x3c]
push eax
push 0x100
call fcn.0045dc70
add esp, 8
mov ecx, 2
imul edx, ecx, 0xb16
mov eax, 4
imul ecx, eax, 0x60a
mov eax, dword [ecx + 0x4952f8]
not eax
movsx ecx, word [edx + 0x490dc0]
imul ecx, eax
mov edx, 2
imul eax, edx, 0xb16
mov word [eax + 0x490dc0], cx
mov dword [ebp - 4], 0
jmp 0x45fef8
mov ecx, dword [ebp - 4]
add ecx, 1
mov dword [ebp - 4], ecx
cmp dword [ebp - 4], 8
je 0x45ff97
mov edx, 4
imul eax, edx, 0x1e0e
mov ecx, dword [eax + 0x4952f8]
sub ecx, 1
mov dword [ebp - 0x38], ecx
mov edx, 4
imul eax, edx, 0x1e0e
mov ecx, dword [ebp - 0x38]
mov dword [eax + 0x4952f8], ecx
mov edx, dword [ebp - 0x38]
sub edx, 0x2b309c03
or edx, 0x6cfa6da7
mov eax, 4
imul ecx, eax, 0xb84
mov eax, dword [ecx + 0x4952f8]
add eax, edx
mov ecx, 4
imul edx, ecx, 0xb84
mov dword [edx + 0x4952f8], eax
mov eax, dword [ebp - 4]
mov ecx, dword [ebp + 8]
mov edx, dword [ecx + eax*4 + 8]
mov eax, dword [ebp - 4]
add edx, dword [ebp + eax*4 - 0x30]
mov ecx, dword [ebp - 4]
mov eax, dword [ebp + 8]
mov dword [eax + ecx*4 + 8], edx
mov ecx, 2
imul edx, ecx, 0xdf3
mov eax, 0x860
mov word [edx + 0x490dc0], ax
jmp 0x45feef
mov ecx, 4
imul edx, ecx, 0x17e3
mov eax, 2
imul ecx, eax, 0x59c
movsx eax, word [ecx + 0x490dc0]
mov ecx, 4
imul ecx, ecx, 0x18e4
mov ecx, dword [ecx + 0x4952f8]
add ecx, 0x7a58851
or eax, ecx
mov edx, dword [edx + 0x4952f8]
sub edx, eax
mov eax, 4
imul ecx, eax, 0x17e3
mov dword [ecx + 0x4952f8], edx
pop edi
pop esi
mov esp, ebp
pop ebp
ret