Function at 0x40a720
Capabilities:
Encrypt data using chaskey

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x15c
push esi
push edi
mov eax, 4
imul ecx, eax, 0x26d4
mov edx, dword [ecx + 0x49c858]
add edx, 0x34d741b3
cmp edx, 0x9c510dbe
jle 0x40a772
mov eax, 4
imul ecx, eax, 0x59c0
mov edx, dword [ecx + 0x49c858]
xor edx, 0xc52a37d8
mov eax, 4
imul ecx, eax, 0x59c0
mov dword [ecx + 0x49c858], edx
mov edx, 4
imul eax, edx, 0x2a93
mov ecx, dword [eax + 0x49c858]
mov edx, 2
imul eax, edx, 0x41eb
mov word [eax + 0x48f8a0], cx
mov ecx, 4
imul edx, ecx, 0x2a93
mov eax, dword [edx + 0x49c858]
add eax, 1
mov ecx, 4
imul edx, ecx, 0x2a93
mov dword [edx + 0x49c858], eax
mov eax, 4
imul ecx, eax, 0x13c7
mov edx, 4
imul eax, edx, 0x958
mov ecx, dword [ecx + 0x49c858]
add ecx, dword [eax + 0x49c858]
mov edx, 4
imul eax, edx, 0x13c7
mov dword [eax + 0x49c858], ecx
mov ecx, 4
imul edx, ecx, 0x55ce
mov eax, dword [edx + 0x49c858]
mov dword [ebp - 0x50], eax
mov ecx, 4
imul edx, ecx, 0x55ce
mov eax, dword [edx + 0x49c858]
add eax, 1
mov ecx, 4
imul edx, ecx, 0x55ce
mov dword [edx + 0x49c858], eax
cmp dword [ebp - 0x50], 0x4296f8aa
jg 0x40a855
mov eax, 4
imul ecx, eax, 0x3449
imul edx, dword [ecx + 0x49c858], 0x7063edce
mov eax, 4
imul ecx, eax, 0x3449
mov dword [ecx + 0x49c858], edx
mov dword [ebp - 4], 0
jmp 0x40a867
mov edx, dword [ebp - 4]
add edx, 1
mov dword [ebp - 4], edx
cmp dword [ebp - 4], 0x10
je 0x40a992
mov eax, 4
imul ecx, eax, 0x110d
imul edx, dword [ecx + 0x49c858], 0xad5790ab
mov eax, 4
imul ecx, eax, 0x110d
mov dword [ecx + 0x49c858], edx
mov edx, 2
imul eax, edx, 0x5ca1
movsx ecx, word [eax + 0x48f8a0]
xor ecx, 0xa50bdbc0
mov edx, 2
imul eax, edx, 0x5ca1
mov word [eax + 0x48f8a0], cx
mov ecx, dword [ebp - 4]
mov edx, dword [ebp + 0xc]
movzx eax, byte [edx + ecx*4]
shl eax, 0x18
mov ecx, dword [ebp - 4]
mov edx, dword [ebp + 0xc]
movzx ecx, byte [edx + ecx*4 + 1]
shl ecx, 0x10
or eax, ecx
mov edx, dword [ebp - 4]
mov ecx, dword [ebp + 0xc]
movzx edx, byte [ecx + edx*4 + 2]
shl edx, 8
or eax, edx
mov ecx, dword [ebp - 4]
mov edx, dword [ebp + 0xc]
movzx ecx, byte [edx + ecx*4 + 3]
or eax, ecx
mov edx, dword [ebp - 4]
mov dword [ebp + edx*4 - 0x15c], eax
mov eax, 4
imul ecx, eax, 0x1df1
mov dword [ecx + 0x49c858], 0xf0b8f667
mov edx, 2
imul eax, edx, 0x5920
movsx ecx, word [eax + 0x48f8a0]
mov edx, 4
imul eax, edx, 0x586
mov dword [eax + 0x49c858], ecx
mov ecx, 2
imul edx, ecx, 0x5920
mov ax, word [edx + 0x48f8a0]
sub ax, 1
mov ecx, 2
imul edx, ecx, 0x5920
mov word [edx + 0x48f8a0], ax
mov eax, 4
imul ecx, eax, 0x5343
mov edx, dword [ecx + 0x49c858]
add edx, 0x73b59ec4
mov eax, 4
imul ecx, eax, 0x5343
mov dword [ecx + 0x49c858], edx
jmp 0x40a85e
mov edx, 4
imul eax, edx, 0x579b
mov ecx, dword [eax + 0x49c858]
and ecx, 0xf477a08b
mov dword [ebp - 0x58], ecx
mov edx, 4
imul eax, edx, 0x579b
mov ecx, dword [eax + 0x49c858]
sub ecx, 1
mov edx, 4
imul eax, edx, 0x579b
mov dword [eax + 0x49c858], ecx
cmp dword [ebp - 0x58], 0x3d2522cb
je 0x40aa3b
mov ecx, 4
imul edx, ecx, 0x5da8
mov eax, 4
imul ecx, eax, 0x3ec4
mov eax, dword [ecx + 0x49c858]
xor eax, 0x1b996683
mov ecx, dword [edx + 0x49c858]
or ecx, eax
mov edx, 4
imul eax, edx, 0x5da8
mov dword [eax + 0x49c858], ecx
mov ecx, 4
imul edx, ecx, 0x3ec4
mov eax, dword [edx + 0x49c858]
sub eax, 1
mov ecx, 4
imul edx, ecx, 0x3ec4
mov dword [edx + 0x49c858], eax
jmp 0x40aa88
mov eax, 4
imul ecx, eax, 0xd0d
mov edx, 4
imul eax, edx, 0x3131
mov edx, dword [eax + 0x49c858]
add edx, 0x5ecb4f90
mov eax, 4
imul eax, eax, 0x2801
and edx, dword [eax + 0x49c858]
mov ecx, dword [ecx + 0x49c858]
imul ecx, edx
mov edx, 4
imul eax, edx, 0xd0d
mov dword [eax + 0x49c858], ecx
push 0x24
mov ecx, dword [ebp + 8]
add ecx, 8
push ecx
lea edx, [ebp - 0x30]
push edx
call fcn.004613e0
add esp, 0xc
mov eax, 4
imul ecx, eax, 0x3d68
mov edx, dword [ecx + 0x49c858]
xor edx, 0x75976d93
mov eax, 4
imul ecx, eax, 0x3d68
mov dword [ecx + 0x49c858], edx
push 0x100
push 0x343c
call fcn.00457b90
add esp, 8
mov dword [ebp - 0x44], eax
mov edx, 4
imul eax, edx, 0x5312
cmp dword [eax + 0x49c858], 0x39000464
jl 0x40ab17
mov ecx, 4
imul edx, ecx, 0x2c00
imul eax, dword [edx + 0x49c858], 0xb6ccac1f
mov ecx, 4
imul edx, ecx, 0x2c00
mov dword [edx + 0x49c858], eax
mov dword [ebp - 4], 0
jmp 0x40ab29
mov eax, dword [ebp - 4]
add eax, 1
mov dword [ebp - 4], eax
cmp dword [ebp - 4], 0x40
je 0x40b36b
mov ecx, 4
imul edx, ecx, 0x2e1
mov dword [edx + 0x49c858], 0x9c10558c
cmp dword [ebp - 4], 0xf
jle 0x40addc
mov eax, 4
imul ecx, eax, 0x1bc4
mov edx, dword [ecx + 0x49c858]
sub edx, 0x18808031
mov eax, 4
imul ecx, eax, 0x1bc4
mov dword [ecx + 0x49c858], edx
mov edx, dword [ebp - 4]
mov eax, dword [ebp + edx*4 - 0x164]
shr eax, 0x11
mov ecx, dword [ebp - 4]
mov edx, dword [ebp + ecx*4 - 0x164]
shl edx, 0xf
or eax, edx
mov ecx, dword [ebp - 4]
mov edx, dword [ebp + ecx*4 - 0x164]
shr edx, 0x13
mov ecx, dword [ebp - 4]
mov ecx, dword [ebp + ecx*4 - 0x164]
shl ecx, 0xd
or edx, ecx
xor eax, edx
mov edx, dword [ebp - 4]
mov ecx, dword [ebp + edx*4 - 0x164]
shr ecx, 0xa
xor eax, ecx
mov edx, dword [ebp - 4]
mov dword [ebp + edx*4 - 0x15c], eax
mov eax, 4
imul ecx, eax, 0x1871
imul edx, dword [ecx + 0x49c858], 0x477a31e8
sub edx, 0x6a518409
cmp edx, 0xa72f5fd6
jne 0x40ac2f
mov eax, 4
imul ecx, eax, 0x5db8
mov edx, 4
imul eax, edx, 0x45ae
mov edx, dword [eax + 0x49c858]
sar edx, 4
and edx, 0x824434f6
mov eax, dword [ecx + 0x49c858]
imul eax, edx
mov ecx, 4
imul edx, ecx, 0x5db8
mov dword [edx + 0x49c858], eax
mov eax, dword [ebp - 4]
mov ecx, dword [ebp + eax*4 - 0x15c]
mov edx, dword [ebp - 4]
add ecx, dword [ebp + edx*4 - 0x178]
mov eax, dword [ebp - 4]
mov dword [ebp + eax*4 - 0x15c], ecx
mov ecx, 4
imul edx, ecx, 0xa5d
mov eax, 4
imul ecx, eax, 0x2fd3
mov eax, dword [ecx + 0x49c858]
or eax, 0x201ec412
mov ecx, dword [edx + 0x49c858]
xor ecx, eax
mov edx, 4
imul eax, edx, 0xa5d
mov dword [eax + 0x49c858], ecx
mov ecx, 4
imul edx, ecx, 0x2fd3
mov eax, dword [edx + 0x49c858]
add eax, 1
mov ecx, 4
imul edx, ecx, 0x2fd3
mov dword [edx + 0x49c858], eax
mov eax, dword [ebp - 4]
mov ecx, dword [ebp + eax*4 - 0x198]
shr ecx, 7
mov edx, dword [ebp - 4]
mov eax, dword [ebp + edx*4 - 0x198]
shl eax, 0x19
or ecx, eax
mov edx, dword [ebp - 4]
mov eax, dword [ebp + edx*4 - 0x198]
shr eax, 0x12
mov edx, dword [ebp - 4]
mov edx, dword [ebp + edx*4 - 0x198]
shl edx, 0xe
or eax, edx
xor ecx, eax
mov eax, dword [ebp - 4]
mov edx, dword [ebp + eax*4 - 0x198]
shr edx, 3
xor ecx, edx
mov eax, dword [ebp - 4]
add ecx, dword [ebp + eax*4 - 0x15c]
mov edx, dword [ebp - 4]
mov dword [ebp + edx*4 - 0x15c], ecx
mov eax, 4
imul ecx, eax, 0x3b96
mov edx, dword [ecx + 0x49c858]
add edx, 0x4c153dc6
mov eax, 4
imul ecx, eax, 0x3b96
mov dword [ecx + 0x49c858], edx
mov edx, dword [ebp - 4]
mov eax, dword [ebp + edx*4 - 0x15c]
mov ecx, dword [ebp - 4]
add eax, dword [ebp + ecx*4 - 0x19c]
mov edx, dword [ebp - 4]
mov dword [ebp + edx*4 - 0x15c], eax
mov eax, 4
imul ecx, eax, 0x3e2d
cmp dword [ecx + 0x49c858], 0x965dfd6d
jge 0x40addc
mov edx, 4
imul eax, edx, 0x565d
mov ecx, dword [eax + 0x49c858]
shl ecx, 5
cmp ecx, 0xe281295b
je 0x40addc
mov edx, 2
imul eax, edx, 0xd27
mov cx, word [eax + 0x48f8a0]
add cx, 1
mov word [ebp - 8], cx
mov edx, 2
imul eax, edx, 0xd27
mov cx, word [ebp - 8]
mov word [eax + 0x48f8a0], cx
movsx edx, word [ebp - 8]
mov eax, 2
imul ecx, eax, 0x55fe
movsx eax, word [ecx + 0x48f8a0]
xor eax, edx
mov ecx, 2
imul edx, ecx, 0x55fe
mov word [edx + 0x48f8a0], ax
mov eax, 4
imul ecx, eax, 0x4857
mov edx, dword [ecx + 0x49c858]
sub edx, 1
mov dword [ebp - 0x38], edx
mov eax, 4
imul ecx, eax, 0x4857
mov edx, dword [ebp - 0x38]
mov dword [ecx + 0x49c858], edx
mov eax, dword [ebp - 0x38]
sub eax, 0x219f8c61
mov ecx, 2
imul edx, ecx, 0x25
movsx ecx, word [edx + 0x48f8a0]
imul ecx, eax
mov edx, 2
imul eax, edx, 0x25
mov word [eax + 0x48f8a0], cx
mov ecx, 4
imul edx, ecx, 0x43a0
mov eax, dword [edx + 0x49c858]
xor eax, 0x3e43121b
mov ecx, 4
imul edx, ecx, 0x43a0
mov dword [edx + 0x49c858], eax
mov eax, 4
imul ecx, eax, 7
mov edx, 4
shl edx, 2
mov eax, dword [ebp + edx - 0x30]
shr eax, 6
mov edx, 4
shl edx, 2
mov edx, dword [ebp + edx - 0x30]
shl edx, 0x1a
or eax, edx
mov edx, 4
shl edx, 2
mov edx, dword [ebp + edx - 0x30]
shr edx, 0xb
mov esi, 4
shl esi, 2
mov esi, dword [ebp + esi - 0x30]
shl esi, 0x15
or edx, esi
xor eax, edx
mov edx, 4
shl edx, 2
mov edx, dword [ebp + edx - 0x30]
shr edx, 0x19
mov esi, 4
shl esi, 2
mov esi, dword [ebp + esi - 0x30]
shl esi, 7
or edx, esi
xor eax, edx
mov ecx, dword [ebp + ecx - 0x30]
add ecx, eax
mov edx, 4
imul eax, edx, 6
mov edx, 4
shl edx, 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 + edx - 0x30]
xor esi, dword [ebp + eax - 0x30]
add ecx, esi
mov eax, dword [ebp - 4]
mov edx, dword [ebp - 0x44]
add ecx, dword [edx + eax*4]
mov eax, dword [ebp - 4]
add ecx, dword [ebp + eax*4 - 0x15c]
mov dword [ebp - 0x4c], ecx
mov ecx, 4
imul edx, ecx, 0x6268
mov eax, dword [edx + 0x49c858]
sub eax, 1
mov dword [ebp - 0x48], eax
mov ecx, 4
imul edx, ecx, 0x6268
mov eax, dword [ebp - 0x48]
mov dword [edx + 0x49c858], eax
mov ecx, dword [ebp - 0x48]
add ecx, 0xf001ceb
cmp ecx, 0xab09b561
jg 0x40af75
mov edx, 4
imul eax, edx, 0x5afd
mov ecx, dword [eax + 0x49c858]
add ecx, 0x693a8ef5
mov edx, 4
imul eax, edx, 0x5afd
mov dword [eax + 0x49c858], ecx
mov ecx, 4
imul edx, ecx, 0
mov eax, dword [ebp + edx - 0x30]
shr eax, 2
mov ecx, 4
imul edx, ecx, 0
mov ecx, dword [ebp + edx - 0x30]
shl ecx, 0x1e
or eax, ecx
mov edx, 4
imul ecx, edx, 0
mov edx, dword [ebp + ecx - 0x30]
shr edx, 0xd
mov ecx, 4
imul ecx, ecx, 0
mov ecx, dword [ebp + ecx - 0x30]
shl ecx, 0x13
or edx, ecx
xor eax, edx
mov edx, 4
imul ecx, edx, 0
mov edx, dword [ebp + ecx - 0x30]
shr edx, 0x16
mov ecx, 4
imul ecx, ecx, 0
mov ecx, dword [ebp + ecx - 0x30]
shl ecx, 0xa
or edx, ecx
xor eax, edx
mov edx, 4
imul ecx, edx, 0
mov edx, 4
shl edx, 0
mov ecx, dword [ebp + ecx - 0x30]
and ecx, dword [ebp + edx - 0x30]
mov edx, 4
shl edx, 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 + edx - 0x30]
or ecx, esi
add eax, ecx
mov dword [ebp - 0x5c], eax
mov eax, 4
imul ecx, eax, 0x3f0f
mov edx, dword [ecx + 0x49c858]
xor edx, 0xb812315e
mov eax, 4
imul ecx, eax, 0x3f0f
mov dword [ecx + 0x49c858], edx
mov edx, 4
imul eax, edx, 3
mov ecx, dword [ebp + eax - 0x30]
add ecx, dword [ebp - 0x4c]
mov edx, 4
imul eax, edx, 3
mov dword [ebp + eax - 0x30], ecx
mov ecx, 2
imul edx, ecx, 0x1138
movsx eax, word [edx + 0x48f8a0]
or eax, 0xc0e27baa
mov ecx, 2
imul edx, ecx, 0x1138
mov word [edx + 0x48f8a0], ax
mov eax, dword [ebp - 0x4c]
add eax, dword [ebp - 0x5c]
mov ecx, 4
imul edx, ecx, 7
mov dword [ebp + edx - 0x30], eax
mov eax, 4
imul ecx, eax, 0x1895
mov edx, 2
imul eax, edx, 0x4b32
movsx edx, word [eax + 0x48f8a0]
mov eax, 0x88fe7727
sub eax, edx
mov ecx, dword [ecx + 0x49c858]
sub ecx, eax
mov edx, 4
imul eax, edx, 0x1895
mov dword [eax + 0x49c858], ecx
mov ecx, 4
imul edx, ecx, 0x1e7e
mov eax, dword [edx + 0x49c858]
add eax, 1
mov dword [ebp - 0x40], eax
mov ecx, 4
imul edx, ecx, 0x1e7e
mov eax, dword [ebp - 0x40]
mov dword [edx + 0x49c858], eax
mov ecx, 2
imul edx, ecx, 0x1c10
movsx eax, word [edx + 0x48f8a0]
sar eax, 9
imul eax, dword [ebp - 0x40]
cmp eax, 0x37b3a0ba
je 0x40b1ce
mov ecx, 2
imul edx, ecx, 0x5d0
movsx eax, word [edx + 0x48f8a0]
xor eax, 0x6311040
mov ecx, 4
imul edx, ecx, 0x5af6
mov ecx, dword [edx + 0x49c858]
shl ecx, 1
and ecx, 0xe8020f59
or ecx, 0x2eecb294
cmp eax, ecx
jge 0x40b1c9
mov edx, 4
imul eax, edx, 0x3119
mov ecx, dword [eax + 0x49c858]
add ecx, 1
mov dword [ebp - 0x34], ecx
mov edx, 4
imul eax, edx, 0x3119
mov ecx, dword [ebp - 0x34]
mov dword [eax + 0x49c858], ecx
mov edx, 4
imul eax, edx, 0x40b2
mov ecx, dword [eax + 0x49c858]
mov edx, dword [ebp - 0x34]
lea eax, [ecx + edx + 0x2877e821]
mov ecx, 4
imul edx, ecx, 0x1dd3
mov ecx, dword [edx + 0x49c858]
or ecx, eax
mov edx, 4
imul eax, edx, 0x1dd3
mov dword [eax + 0x49c858], ecx
jmp 0x40b25e
mov ecx, 4
imul edx, ecx, 0x28ca
mov eax, dword [edx + 0x49c858]
add eax, 1
mov dword [ebp - 0x3c], eax
mov ecx, 4
imul edx, ecx, 0x28ca
mov eax, dword [ebp - 0x3c]
mov dword [edx + 0x49c858], eax
mov ecx, 2
imul edx, ecx, 0x5997
mov ax, word [edx + 0x48f8a0]
sub ax, 1
mov word [ebp - 6], ax
mov ecx, 2
imul edx, ecx, 0x5997
mov ax, word [ebp - 6]
mov word [edx + 0x48f8a0], ax
movsx ecx, word [ebp - 6]
mov edx, dword [ebp - 0x3c]
add edx, 0x24e3e9f9
sub edx, ecx
mov eax, 2
imul ecx, eax, 0x2c9d
movsx eax, word [ecx + 0x48f8a0]
sub eax, edx
mov ecx, 2
imul edx, ecx, 0x2c9d
mov word [edx + 0x48f8a0], ax
mov eax, 4
imul ecx, eax, 0x2a09
mov edx, dword [ecx + 0x49c858]
sub edx, 0x2a0c9130
mov eax, 4
imul ecx, eax, 0x2a09
mov dword [ecx + 0x49c858], edx
mov dword [ebp - 0xc], 8
jmp 0x40b298
mov edx, dword [ebp - 0xc]
sub edx, 1
mov dword [ebp - 0xc], edx
cmp dword [ebp - 0xc], 0
je 0x40b300
mov eax, 4
imul ecx, eax, 0x3880
mov edx, dword [ecx + 0x49c858]
and edx, 0xac566a5e
mov eax, 4
imul ecx, eax, 0x3880
mov dword [ecx + 0x49c858], edx
mov edx, dword [ebp - 0xc]
mov eax, dword [ebp - 0xc]
mov ecx, dword [ebp + eax*4 - 0x34]
mov dword [ebp + edx*4 - 0x30], ecx
mov edx, 2
imul eax, edx, 0x3e8f
movsx ecx, word [eax + 0x48f8a0]
or ecx, 0x1a40800
mov edx, 2
imul eax, edx, 0x3e8f
mov word [eax + 0x48f8a0], cx
jmp 0x40b28f
mov ecx, 4
imul edx, ecx, 0x51a7
mov eax, dword [edx + 0x49c858]
add eax, 0xb6f2653
mov ecx, 4
imul edx, ecx, 0x51a7
mov dword [edx + 0x49c858], 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, 0x2476
mov eax, dword [edx + 0x49c858]
sub eax, 0x7d46adbe
mov ecx, 4
imul edx, ecx, 0x2476
mov dword [edx + 0x49c858], eax
jmp 0x40ab20
mov eax, 4
imul ecx, eax, 0x4ffe
mov edx, 4
imul eax, edx, 0x69b
imul edx, dword [eax + 0x49c858], 0xb9f72cf3
mov eax, dword [ecx + 0x49c858]
and eax, edx
mov dword [ebp - 0x54], eax
mov ecx, 4
imul edx, ecx, 0x69b
mov eax, dword [edx + 0x49c858]
sub eax, 1
mov ecx, 4
imul edx, ecx, 0x69b
mov dword [edx + 0x49c858], eax
cmp dword [ebp - 0x54], 0x3df9c08c
jne 0x40b416
mov eax, 4
imul ecx, eax, 0x2ce8
mov edx, 4
imul eax, edx, 0x13cb
mov edx, dword [eax + 0x49c858]
not edx
mov eax, 4
imul eax, eax, 0x60f6
mov eax, dword [eax + 0x49c858]
lea edx, [edx + eax - 0x43ed70af]
mov eax, dword [ecx + 0x49c858]
imul eax, edx
mov ecx, 4
imul edx, ecx, 0x2ce8
mov dword [edx + 0x49c858], eax
jmp 0x40b449
mov eax, 4
imul ecx, eax, 0xe8b
mov edx, 4
imul eax, edx, 0x5772
mov ecx, dword [ecx + 0x49c858]
sub ecx, dword [eax + 0x49c858]
mov edx, 4
imul eax, edx, 0xe8b
mov dword [eax + 0x49c858], ecx
mov ecx, dword [ebp - 0x44]
push ecx
push 0x100
call fcn.00449720
add esp, 8
mov edx, 4
imul eax, edx, 0x533e
mov ecx, dword [eax + 0x49c858]
or ecx, 0x6bcb63ad
mov edx, 4
imul eax, edx, 0x533e
mov dword [eax + 0x49c858], ecx
mov dword [ebp - 4], 0
jmp 0x40b494
mov ecx, dword [ebp - 4]
add ecx, 1
mov dword [ebp - 4], ecx
cmp dword [ebp - 4], 8
je 0x40b58c
mov edx, 4
imul eax, edx, 0xa2b
mov ecx, 2
imul edx, ecx, 0xb68
movsx ecx, word [edx + 0x48f8a0]
mov edx, 4
imul edx, edx, 0x4099
mov edx, dword [edx + 0x49c858]
sar edx, 2
imul edx, edx, 0x1d758d3b
xor ecx, edx
mov eax, dword [eax + 0x49c858]
and eax, ecx
mov ecx, 4
imul edx, ecx, 0xa2b
mov dword [edx + 0x49c858], eax
mov eax, 2
imul ecx, eax, 0xb68
mov dx, word [ecx + 0x48f8a0]
add dx, 1
mov eax, 2
imul ecx, eax, 0xb68
mov word [ecx + 0x48f8a0], dx
mov edx, dword [ebp - 4]
mov eax, dword [ebp + 8]
mov ecx, dword [eax + edx*4 + 8]
mov edx, dword [ebp - 4]
add ecx, dword [ebp + edx*4 - 0x30]
mov eax, dword [ebp - 4]
mov edx, dword [ebp + 8]
mov dword [edx + eax*4 + 8], ecx
mov eax, 4
imul ecx, eax, 0xefb
mov edx, dword [ecx + 0x49c858]
not edx
xor edx, 0x8114428
mov eax, 4
imul ecx, eax, 0x2dc1
cmp edx, dword [ecx + 0x49c858]
jge 0x40b587
mov edx, 4
imul eax, edx, 0x2236
mov ecx, dword [eax + 0x49c858]
and ecx, 0xee39a9c4
mov edx, 4
imul eax, edx, 0x2236
mov dword [eax + 0x49c858], ecx
jmp 0x40b48b
mov ecx, 4
imul edx, ecx, 0x1c2e
mov eax, dword [edx + 0x49c858]
sub eax, 0x772846b0
mov ecx, 4
imul edx, ecx, 0x1c2e
mov dword [edx + 0x49c858], eax
pop edi
pop esi
mov esp, ebp
pop ebp
ret