Function at 0x40ed44
Capabilities:
Hash data using fnv

Disassembly:
push ebp
lea ebp, [esp - 0x78]
sub esp, 0x450
mov eax, 4
imul ecx, eax, 0x56f
mov edx, dword [ecx + 0x497c50]
xor edx, 0xade4c981
mov eax, 4
imul ecx, eax, 0x56f
mov dword [ecx + 0x497c50], edx
mov edx, 2
imul eax, edx, 0x17e2
mov cx, word [eax + 0x490a20]
sub cx, 1
mov word [ebp + 0x72], cx
mov edx, 2
imul eax, edx, 0x17e2
mov cx, word [ebp + 0x72]
mov word [eax + 0x490a20], cx
movsx edx, word [ebp + 0x72]
mov eax, 2
imul ecx, eax, 0x2e4a
movsx eax, word [ecx + 0x490a20]
add eax, edx
mov ecx, 2
imul edx, ecx, 0x2e4a
mov word [edx + 0x490a20], ax
mov eax, 2
imul ecx, eax, 0x2904
movsx edx, word [ecx + 0x490a20]
or edx, 0xa27ef2d5
cmp edx, 0x23affc5c
jle 0x40ea05
mov eax, 4
imul ecx, eax, 0x2287
mov edx, dword [ecx + 0x497c50]
sub edx, 0x1221004
mov eax, 4
imul ecx, eax, 0x2287
mov dword [ecx + 0x497c50], edx
mov edx, 2
imul eax, edx, 0x17a7
movsx ecx, word [eax + 0x490a20]
add ecx, 0x1c7e2df
mov dword [ebp + 0x14], ecx
mov edx, 2
imul eax, edx, 0x17a7
mov cx, word [eax + 0x490a20]
sub cx, 1
mov edx, 2
imul eax, edx, 0x17a7
mov word [eax + 0x490a20], cx
cmp dword [ebp + 0x14], 0xe5f471a9
jne 0x40ea8c
mov ecx, 4
imul edx, ecx, 0x619
mov eax, 4
imul ecx, eax, 0x1cee
imul eax, dword [ecx + 0x497c50], 0x2010c2d7
mov ecx, dword [edx + 0x497c50]
xor ecx, eax
mov edx, 4
imul eax, edx, 0x619
mov dword [eax + 0x497c50], ecx
jmp 0x40eab3
mov ecx, 4
imul edx, ecx, 0x375c
mov eax, dword [edx + 0x497c50]
add eax, 0x11430021
mov ecx, 4
imul edx, ecx, 0x375c
mov dword [edx + 0x497c50], eax
mov eax, 4
imul ecx, eax, 0x286f
mov edx, 4
imul eax, edx, 0x3797
mov edx, dword [eax + 0x497c50]
sar edx, 8
mov eax, dword [ecx + 0x497c50]
or eax, edx
mov ecx, 4
imul edx, ecx, 0x286f
mov dword [edx + 0x497c50], eax
mov eax, 4
imul ecx, eax, 0x2673
mov edx, dword [ecx + 0x497c50]
sub edx, 0x4a04c038
mov eax, 4
imul ecx, eax, 0x2673
mov dword [ecx + 0x497c50], edx
lea ecx, [ebp - 0x10]
call fcn.00457c70
mov edx, 4
imul eax, edx, 0x4f1
mov ecx, 2
imul edx, ecx, 0x1305
movsx ecx, word [edx + 0x490a20]
mov edx, dword [eax + 0x497c50]
sub edx, ecx
and edx, 0x52eb0c3d
mov eax, 4
imul ecx, eax, 0x2a45
mov dword [ecx + 0x497c50], edx
lea ecx, [ebp + 0x5c]
call fcn.00412370
mov edx, 4
imul eax, edx, 0x20be
mov ecx, 4
imul edx, ecx, 0xca2
imul ecx, dword [edx + 0x497c50], 0xb34f7515
mov edx, dword [eax + 0x497c50]
imul edx, ecx
mov eax, 4
imul ecx, eax, 0x20be
mov dword [ecx + 0x497c50], edx
push 0x1c
call fcn.00426100
add esp, 4
mov dword [ebp + 0x40], eax
cmp dword [ebp + 0x40], 0
je 0x40ebb9
mov ecx, dword [ebp + 0x40]
call fcn.004478a0
mov dword [ebp + 0x34], eax
jmp 0x40ebc0
mov dword [ebp + 0x34], 0
mov edx, dword [ebp + 0x34]
mov dword [0x48ffd0], edx
mov eax, 2
imul ecx, eax, 0x21ac
movsx edx, word [ecx + 0x490a20]
xor edx, 0x84000400
mov eax, 2
imul ecx, eax, 0x21ac
mov word [ecx + 0x490a20], dx
mov dword [ebp + 0x20], 0x10
mov edx, 4
imul eax, edx, 0x633
mov ecx, 4
imul edx, ecx, 0x26fd
mov eax, dword [eax + 0x497c50]
imul eax, dword [edx + 0x497c50]
sub eax, 0x6f35d6c3
mov dword [ebp + 0x18], eax
mov ecx, 4
imul edx, ecx, 0x26fd
mov eax, dword [edx + 0x497c50]
sub eax, 1
mov ecx, 4
imul edx, ecx, 0x26fd
mov dword [edx + 0x497c50], eax
cmp dword [ebp + 0x18], 0x65ba566f
jl 0x40ec7f
mov eax, 2
imul ecx, eax, 0x1bae
movsx edx, word [ecx + 0x490a20]
or edx, 0xa9f0214b
mov eax, 2
imul ecx, eax, 0x1bae
mov word [ecx + 0x490a20], dx
jmp 0x40eca7
mov edx, 4
imul eax, edx, 0x1483
cmp dword [eax + 0x497c50], 0x54ce2046
jle 0x40eca7
mov ecx, 4
imul edx, ecx, 0x483
mov eax, dword [edx + 0x497c50]
lea ecx, [ebp + 0x20]
push ecx
lea edx, [ebp + 4]
push edx
call dword [0x49097c]
test eax, eax
jne 0x40ee07
mov eax, 4
imul ecx, eax, 0x1d8b
cmp dword [ecx + 0x497c50], 0x7c365fbd
jl 0x40ed44
mov edx, 4
imul eax, edx, 0x366f
mov ecx, dword [eax + 0x497c50]
add ecx, 1
mov dword [ebp + 0x50], ecx
mov edx, 4
imul eax, edx, 0x366f
mov ecx, dword [ebp + 0x50]
mov dword [eax + 0x497c50], ecx
cmp dword [ebp + 0x50], 0x5fddebd5
jne 0x40ed44
mov edx, 4
imul eax, edx, 0x2d71
mov ecx, 2
imul edx, ecx, 0x2f84
movsx ecx, word [edx + 0x490a20]
and ecx, 0xb9fa7ace
mov edx, dword [eax + 0x497c50]
and edx, ecx
mov eax, 4
imul ecx, eax, 0x2d71
mov dword [ecx + 0x497c50], edx
push 0xe
push 0xfd6
call fcn.004465d0
add esp, 8
mov dword [ebp + 0x58], eax
mov edx, 4
imul eax, edx, 0x1b56
mov ecx, 2
imul edx, ecx, 0x5dd
movsx ecx, word [edx + 0x490a20]
mov edx, dword [eax + 0x497c50]
or edx, ecx
mov eax, 4
imul ecx, eax, 0x1b56
mov dword [ecx + 0x497c50], edx
mov edx, dword [ebp + 0x58]
push edx
lea eax, [ebp + 4]
push eax
call fcn.00465bb0
add esp, 8
mov ecx, 4
imul edx, ecx, 0x1632
mov eax, 4
imul ecx, eax, 0x38e6
mov eax, dword [ecx + 0x497c50]
sar eax, 4
imul ecx, eax, 0xe41b3e40
mov eax, 0x2fef5205
sub eax, ecx
mov ecx, dword [edx + 0x497c50]
imul ecx, eax
mov edx, 4
imul eax, edx, 0x1632
mov dword [eax + 0x497c50], ecx
mov ecx, dword [ebp + 0x58]
push ecx
push 0xe
call fcn.004479c0
add esp, 8
mov edx, 2
imul eax, edx, 0x2be2
mov ecx, 0x7816
mov word [eax + 0x490a20], cx
mov edx, 2
imul eax, edx, 0x1ac4
movsx ecx, word [eax + 0x490a20]
or ecx, 0xc5661908
mov edx, 4
imul eax, edx, 0x1b52
mov dword [eax + 0x497c50], ecx
mov ecx, 4
imul edx, ecx, 0x7d9
mov eax, dword [edx + 0x497c50]
shl eax, 1
mov ecx, 4
imul edx, ecx, 0x291b
imul ecx, dword [edx + 0x497c50], 0xcb721269
sub eax, ecx
cmp eax, 0xe9fd1f1c
jle 0x40eec0
mov edx, 4
imul eax, edx, 0x29a9
mov ecx, dword [eax + 0x497c50]
add ecx, 0x7fc931ab
cmp ecx, 0xff6fe5ba
je 0x40eebe
mov edx, 4
imul eax, edx, 0x79
mov ecx, 4
imul edx, ecx, 0xfbe
mov ecx, dword [edx + 0x497c50]
sar ecx, 3
sub ecx, 0xf096bb1
xor ecx, 0xc43eb424
mov edx, dword [eax + 0x497c50]
sub edx, ecx
mov eax, 4
imul ecx, eax, 0x79
mov dword [ecx + 0x497c50], edx
jmp 0x40ef24
mov edx, 4
imul eax, edx, 0x3644
mov ecx, dword [eax + 0x497c50]
xor ecx, 0x24ba4ec8
or ecx, 0x9e36575c
cmp ecx, 0xa8367780
jne 0x40ef24
mov edx, 2
imul eax, edx, 0x2311
mov ecx, 2
imul edx, ecx, 0x14ca
movsx ecx, word [edx + 0x490a20]
mov edx, 0x1494cf2c
sub edx, ecx
movsx eax, word [eax + 0x490a20]
or eax, edx
mov ecx, 2
imul edx, ecx, 0x2311
mov word [edx + 0x490a20], ax
mov eax, 2
imul ecx, eax, 0x1752
mov dx, word [ecx + 0x490a20]
sub dx, 1
mov word [ebp + 0x76], dx
mov eax, 2
imul ecx, eax, 0x1752
mov dx, word [ebp + 0x76]
mov word [ecx + 0x490a20], dx
movsx eax, word [ebp + 0x76]
and eax, 0x88d84387
mov ecx, 4
imul edx, ecx, 0x1384
mov ecx, dword [edx + 0x497c50]
or ecx, eax
mov edx, 4
imul eax, edx, 0x1384
mov dword [eax + 0x497c50], ecx
push 0x7e
push 0x2917
call fcn.004465d0
add esp, 8
mov dword [ebp + 0x38], eax
mov ecx, 2
imul edx, ecx, 0x3390
movsx eax, word [edx + 0x490a20]
shl eax, 8
imul ecx, eax, 0x7586f6c9
cmp ecx, 0x654f71c4
jl 0x40f008
mov edx, 4
imul eax, edx, 0x13dc
mov ecx, dword [eax + 0x497c50]
add ecx, 1
mov dword [ebp + 0x48], ecx
mov edx, 4
imul eax, edx, 0x13dc
mov ecx, dword [ebp + 0x48]
mov dword [eax + 0x497c50], ecx
mov edx, 2
imul eax, edx, 0x903
movsx ecx, word [eax + 0x490a20]
sub ecx, dword [ebp + 0x48]
mov edx, 2
imul eax, edx, 0x903
mov word [eax + 0x490a20], cx
mov ecx, dword [ebp + 0x38]
push ecx
lea edx, [ebp - 0x1ec]
push edx
call fcn.00465bb0
add esp, 8
mov eax, 2
imul ecx, eax, 0x204c
movsx edx, word [ecx + 0x490a20]
imul eax, edx, 0x997e56f6
cmp eax, 0xb570d73a
jl 0x40f061
mov ecx, 4
imul edx, ecx, 0x89
mov eax, dword [edx + 0x497c50]
and eax, 0x2aa3e244
mov ecx, 4
imul edx, ecx, 0x89
mov dword [edx + 0x497c50], eax
mov eax, dword [ebp + 0x38]
push eax
push 0x7e
call fcn.004479c0
add esp, 8
mov ecx, 2
imul edx, ecx, 0x3331
movsx eax, word [edx + 0x490a20]
sub eax, 0xa7a01cb
mov ecx, 2
imul edx, ecx, 0x3331
mov word [edx + 0x490a20], ax
mov eax, 1
shl eax, 4
lea ecx, [ebp + eax - 0x1ec]
push ecx
lea ecx, [ebp + 0x5c]
call fcn.00461650
mov edx, 4
imul eax, edx, 0x3890
mov ecx, 4
imul edx, ecx, 0x408
mov eax, dword [eax + 0x497c50]
xor eax, dword [edx + 0x497c50]
mov ecx, 4
imul edx, ecx, 0x3890
mov dword [edx + 0x497c50], eax
push 9
lea ecx, [ebp + 0x5c]
call fcn.0040cfe0
mov eax, 4
imul ecx, eax, 0x134c
mov dword [ecx + 0x497c50], 0xc10b7cc3
mov edx, 1
shl edx, 4
lea eax, [ebp + edx - 0x1ec]
push eax
lea ecx, [ebp - 0x2fc]
push ecx
call fcn.00465bb0
add esp, 8
mov edx, 4
imul eax, edx, 0x210f
mov ecx, dword [eax + 0x497c50]
and ecx, 0x8a7978d3
mov edx, 4
imul eax, edx, 0x210f
mov dword [eax + 0x497c50], ecx
lea ecx, [ebp + 4]
push ecx
lea edx, [ebp - 0x2fc]
push edx
call fcn.00465bc0
add esp, 8
mov eax, 4
imul ecx, eax, 0x1b2f
mov edx, dword [ecx + 0x497c50]
sub edx, 1
mov dword [ebp + 0x54], edx
mov eax, 4
imul ecx, eax, 0x1b2f
mov edx, dword [ebp + 0x54]
mov dword [ecx + 0x497c50], edx
mov eax, 4
imul ecx, eax, 0x18d2
mov edx, dword [ecx + 0x497c50]
not edx
imul eax, edx, 0xaad2066a
cmp eax, dword [ebp + 0x54]
jge 0x40f1bc
mov ecx, 2
imul edx, ecx, 0x227d
mov eax, 0x69f7
mov word [edx + 0x490a20], ax
push 0x100
push 0
lea ecx, [ebp - 0x1ec]
push ecx
call fcn.00465b20
add esp, 0xc
mov edx, 4
imul eax, edx, 0x384a
mov ecx, dword [eax + 0x497c50]
and ecx, 0x9f2a1550
xor ecx, 0xe390e070
cmp ecx, 0xfff2ad8f
jl 0x40f275
mov edx, 2
imul eax, edx, 0x48f
mov cx, word [eax + 0x490a20]
add cx, 1
mov word [ebp + 0x74], cx
mov edx, 2
imul eax, edx, 0x48f
mov cx, word [ebp + 0x74]
mov word [eax + 0x490a20], cx
movsx edx, word [ebp + 0x74]
imul eax, edx, 0x34c852b0
mov ecx, 2
imul edx, ecx, 0x1e50
movsx ecx, word [edx + 0x490a20]
sub ecx, eax
cmp ecx, 0xe6ed71d1
jle 0x40f275
mov edx, 4
imul eax, edx, 0x129f
mov ecx, dword [eax + 0x497c50]
or ecx, 0x9d47717f
mov edx, 4
imul eax, edx, 0x129f
mov dword [eax + 0x497c50], ecx
mov ecx, 2
imul edx, ecx, 0x2497
mov eax, 2
imul ecx, eax, 0x214f
movsx eax, word [ecx + 0x490a20]
xor eax, 0x9a366514
movsx ecx, word [edx + 0x490a20]
xor ecx, eax
mov edx, 2
imul eax, edx, 0x2497
mov word [eax + 0x490a20], cx
lea ecx, [ebp - 0x24]
push ecx
call fcn.0045ba50
add esp, 4
mov edx, 4
imul eax, edx, 0x2bc7
mov ecx, dword [eax + 0x497c50]
sub ecx, 0x20366b1f
mov edx, 4
imul eax, edx, 0x2bc7
mov dword [eax + 0x497c50], ecx
mov ecx, dword [0x490830]
push ecx
call fcn.00465d40
add esp, 4
mov dword [ebp + 0x4c], eax
mov edx, 4
imul eax, edx, 0x1eb7
mov ecx, dword [eax + 0x497c50]
or ecx, 0xb2488001
mov edx, 4
imul eax, edx, 0x1eb7
mov dword [eax + 0x497c50], ecx
mov ecx, dword [0x490830]
add ecx, dword [ebp + 0x4c]
mov byte [ecx - 1], 0
mov edx, 4
imul eax, edx, 0x36c3
mov ecx, dword [eax + 0x497c50]
and ecx, 0x8b900014
mov edx, 4
imul eax, edx, 0x36c3
mov dword [eax + 0x497c50], ecx
mov ecx, dword [0x490830]
push ecx
lea ecx, [ebp - 0xc4]
call fcn.00423f10
lea edx, [ebp - 0xc4]
push edx
lea ecx, [ebp + 0x5c]
call fcn.0045e000
lea ecx, [ebp - 0xc4]
call fcn.00423fc0
mov eax, 4
imul ecx, eax, 0x16a0
mov edx, dword [ecx + 0x497c50]
add edx, 0x34d2957e
mov eax, 4
imul ecx, eax, 0x16a0
mov dword [ecx + 0x497c50], edx
push 9
lea ecx, [ebp + 0x5c]
call fcn.0040cfe0
mov edx, 4
imul eax, edx, 0x2255
mov ecx, dword [eax + 0x497c50]
sub ecx, 0x1420dff5
mov edx, 4
imul eax, edx, 0x2255
mov dword [eax + 0x497c50], ecx
mov ecx, dword [0x490830]
add ecx, dword [ebp + 0x4c]
mov byte [ecx - 1], 0x5c
mov edx, 4
imul eax, edx, 0x18ce
mov ecx, dword [eax + 0x497c50]
or ecx, 0x50a134a
mov edx, 4
imul eax, edx, 0x18ce
mov dword [eax + 0x497c50], ecx
mov ecx, dword [0x490814]
push ecx
lea ecx, [ebp - 0x38]
call fcn.00423f10
lea edx, [ebp - 0x38]
push edx
lea ecx, [ebp + 0x5c]
call fcn.0045e000
lea ecx, [ebp - 0x38]
call fcn.00423fc0
mov eax, 4
imul ecx, eax, 0x36bf
mov edx, dword [ecx + 0x497c50]
mov dword [ebp + 0x24], edx
mov eax, 4
imul ecx, eax, 0x36bf
mov edx, dword [ecx + 0x497c50]
add edx, 1
mov eax, 4
imul ecx, eax, 0x36bf
mov dword [ecx + 0x497c50], edx
cmp dword [ebp + 0x24], 0xdb2a8d74
jne 0x40f4aa
mov edx, 4
imul eax, edx, 0x1639
mov ecx, 4
imul edx, ecx, 0x31ab
mov eax, dword [eax + 0x497c50]
xor eax, dword [edx + 0x497c50]
mov ecx, 4
imul edx, ecx, 0x1639
mov dword [edx + 0x497c50], eax
jmp 0x40f4d2
mov eax, 4
imul ecx, eax, 0x2b36
mov edx, dword [ecx + 0x497c50]
or edx, 0x80081815
mov eax, 4
imul ecx, eax, 0x2b36
mov dword [ecx + 0x497c50], edx
push 9
lea ecx, [ebp + 0x5c]
call fcn.0040cfe0
mov edx, 4
imul eax, edx, 0x36ba
mov ecx, 4
imul edx, ecx, 0x912
mov eax, dword [eax + 0x497c50]
sub eax, dword [edx + 0x497c50]
mov ecx, 4
imul edx, ecx, 0x36ba
mov dword [edx + 0x497c50], eax
mov eax, dword [0x49082c]
push eax
lea ecx, [ebp - 0x74]
call fcn.00423f10
lea ecx, [ebp - 0x74]
push ecx
lea ecx, [ebp + 0x5c]
call fcn.0045e000
lea ecx, [ebp - 0x74]
call fcn.00423fc0
mov edx, 2
imul eax, edx, 0x304e
movsx ecx, word [eax + 0x490a20]
mov dword [ebp + 0x1c], ecx
mov edx, 2
imul eax, edx, 0x304e
mov cx, word [eax + 0x490a20]
add cx, 1
mov edx, 2
imul eax, edx, 0x304e
mov word [eax + 0x490a20], cx
cmp dword [ebp + 0x1c], 0x27f05722
jge 0x40f5cf
mov ecx, 4
imul edx, ecx, 0x2711
mov eax, 4
imul ecx, eax, 0x1896
mov edx, dword [edx + 0x497c50]
xor edx, dword [ecx + 0x497c50]
mov eax, 4
imul ecx, eax, 0x2711
mov dword [ecx + 0x497c50], edx
mov edx, 4
imul eax, edx, 0x1896
mov ecx, dword [eax + 0x497c50]
add ecx, 1
mov edx, 4
imul eax, edx, 0x1896
mov dword [eax + 0x497c50], ecx
push 9
lea ecx, [ebp + 0x5c]
call fcn.0040cfe0
mov ecx, 4
imul edx, ecx, 0x184e
mov dword [edx + 0x497c50], 0x726264a9
mov eax, dword [0x490824]
push eax
lea ecx, [ebp - 0xd8]
call fcn.00423f10
lea ecx, [ebp - 0xd8]
push ecx
lea ecx, [ebp + 0x5c]
call fcn.0045e000
lea ecx, [ebp - 0xd8]
call fcn.00423fc0
mov edx, 2
imul eax, edx, 0x26f7
mov ecx, 4
imul edx, ecx, 0x2dfb
mov ecx, dword [edx + 0x497c50]
add ecx, 0x4bef6d69
movsx edx, word [eax + 0x490a20]
imul edx, ecx
mov eax, 2
imul ecx, eax, 0x26f7
mov word [ecx + 0x490a20], dx
push 9
lea ecx, [ebp + 0x5c]
call fcn.0040cfe0
mov edx, 4
imul eax, edx, 0x18b1
mov ecx, dword [eax + 0x497c50]
not ecx
sub ecx, 0x6076c86a
and ecx, 0x76c16674
cmp ecx, 0x2252c15
jg 0x40f6dc
mov edx, 2
imul eax, edx, 0x150c
movsx ecx, word [eax + 0x490a20]
cmp ecx, 0x3c808532
jge 0x40f6dc
mov edx, 4
imul eax, edx, 0x876
mov ecx, 4
imul edx, ecx, 0x8e1
mov ecx, 0x4b422863
sub ecx, dword [edx + 0x497c50]
mov edx, dword [eax + 0x497c50]
xor edx, ecx
mov eax, 4
imul ecx, eax, 0x876
mov dword [ecx + 0x497c50], edx
mov edx, dword [0x490828]
push edx
lea ecx, [ebp - 0x9c]
call fcn.00423f10
lea eax, [ebp - 0x9c]
push eax
lea ecx, [ebp + 0x5c]
call fcn.0045e000
lea ecx, [ebp - 0x9c]
call fcn.00423fc0
mov ecx, 4
imul edx, ecx, 0x1944
mov eax, 4
imul ecx, eax, 0x207c
mov edx, dword [edx + 0x497c50]
and edx, dword [ecx + 0x497c50]
mov eax, 4
imul ecx, eax, 0x1944
mov dword [ecx + 0x497c50], edx
push 9
lea ecx, [ebp + 0x5c]
call fcn.0040cfe0
mov edx, 4
imul eax, edx, 0x1c45
mov ecx, 4
imul edx, ecx, 0x11d1
mov ecx, dword [edx + 0x497c50]
sar ecx, 0xa
mov edx, dword [eax + 0x497c50]
xor edx, ecx
xor edx, 0x249dbd90
cmp edx, 0x9fcf0535
jne 0x40f7bb
mov eax, 4
shl eax, 8
mov ecx, 2
imul edx, ecx, 0x8a5
movsx ecx, word [edx + 0x490a20]
mov edx, 4
imul edx, edx, 0x15dd
sub ecx, dword [edx + 0x497c50]
mov eax, dword [eax + 0x497c50]
or eax, ecx
mov ecx, 4
shl ecx, 8
mov dword [ecx + 0x497c50], eax
push 4
push 0x1011
call fcn.004465d0
add esp, 8
mov dword [ebp + 0x44], eax
mov edx, 2
imul eax, edx, 0xb0c
movsx ecx, word [eax + 0x490a20]
imul edx, ecx, 0x49f7d642
mov eax, 2
imul ecx, eax, 0xb0c
mov word [ecx + 0x490a20], dx
mov edx, dword [ebp + 0x44]
push edx
lea ecx, [ebp - 0xec]
call fcn.00423f10
lea eax, [ebp - 0xec]
push eax
lea ecx, [ebp + 0x5c]
call fcn.0045e000
lea ecx, [ebp - 0xec]
call fcn.00423fc0
mov ecx, 4
imul edx, ecx, 0x2487
mov eax, dword [edx + 0x497c50]
or eax, 0x3a81cbe1
mov ecx, 4
imul edx, ecx, 0x2487
mov dword [edx + 0x497c50], eax
mov eax, dword [ebp + 0x44]
push eax
push 4
call fcn.004479c0
add esp, 8
mov ecx, 4
imul edx, ecx, 0x650
mov eax, dword [edx + 0x497c50]
shl eax, 4
cmp eax, 0x73912180
jne 0x40f8c8
mov ecx, 4
imul edx, ecx, 0x8d
mov eax, 4
imul ecx, eax, 0xa40
mov edx, dword [edx + 0x497c50]
sub edx, dword [ecx + 0x497c50]
mov eax, 4
imul ecx, eax, 0x8d
mov dword [ecx + 0x497c50], edx
mov edx, 4
imul eax, edx, 0xa40
mov ecx, dword [eax + 0x497c50]
add ecx, 1
mov edx, 4
imul eax, edx, 0xa40
mov dword [eax + 0x497c50], ecx
push 9
lea ecx, [ebp + 0x5c]
call fcn.0040cfe0
mov ecx, 2
imul edx, ecx, 0x3634
movsx eax, word [edx + 0x490a20]
mov ecx, 2
imul edx, ecx, 0x224b
movsx ecx, word [edx + 0x490a20]
imul eax, ecx
add eax, 0x7c58f508
cmp eax, 0x4b3fa1ae
jne 0x40f947
mov edx, 2
imul eax, edx, 0x21eb
movsx ecx, word [eax + 0x490a20]
cmp ecx, 0xe0090003
jge 0x40f947
mov edx, 4
imul eax, edx, 0x1b3
mov ecx, dword [eax + 0x497c50]
or ecx, 0x1c348340
mov edx, 4
imul eax, edx, 0x1b3
mov dword [eax + 0x497c50], ecx
lea ecx, [ebp + 4]
push ecx
lea ecx, [ebp - 0x4c]
call fcn.00423f10
lea edx, [ebp - 0x4c]
push edx
lea ecx, [ebp + 0x5c]
call fcn.0045e000
lea ecx, [ebp - 0x4c]
call fcn.00423fc0
mov eax, 4
imul ecx, eax, 0x15f2
mov edx, dword [ecx + 0x497c50]
shl edx, 0xa
cmp edx, 0xfcaff12
jne 0x40f9e3
mov eax, 4
imul ecx, eax, 0x1d52
mov edx, 4
imul eax, edx, 0xdc0
mov edx, dword [eax + 0x497c50]
or edx, 0x64392acf
mov eax, dword [ecx + 0x497c50]
xor eax, edx
mov ecx, 4
imul edx, ecx, 0x1d52
mov dword [edx + 0x497c50], eax
mov eax, 4
imul ecx, eax, 0xdc0
mov edx, dword [ecx + 0x497c50]
add edx, 1
mov eax, 4
imul ecx, eax, 0xdc0
mov dword [ecx + 0x497c50], edx
push 9
lea ecx, [ebp + 0x5c]
call fcn.0040cfe0
mov edx, 2
imul eax, edx, 0xd78
movsx ecx, word [eax + 0x490a20]
add ecx, 0x3281c3a0
mov edx, 2
imul eax, edx, 0xd78
mov word [eax + 0x490a20], cx
lea ecx, [ebp - 0x24]
push ecx
lea ecx, [ebp - 0x60]
call fcn.00423f10
lea edx, [ebp - 0x60]
push edx
lea ecx, [ebp + 0x5c]
call fcn.0045e000
lea ecx, [ebp - 0x60]
call fcn.00423fc0
mov eax, 2
imul ecx, eax, 0x2794
mov edx, 4
imul eax, edx, 0x302
mov edx, dword [eax + 0x497c50]
shl edx, 6
mov eax, 0x17972b66
sub eax, edx
movsx ecx, word [ecx + 0x490a20]
add ecx, eax
mov edx, 2
imul eax, edx, 0x2794
mov word [eax + 0x490a20], cx
push 9
lea ecx, [ebp + 0x5c]
call fcn.0040cfe0
mov ecx, 4
imul edx, ecx, 0x23c3
mov eax, dword [edx + 0x497c50]
and eax, 0x5836caa2
mov ecx, 4
imul edx, ecx, 0x23c3
mov dword [edx + 0x497c50], eax
mov eax, 4
imul ecx, eax, 0x1a2f
mov edx, dword [ecx + 0x497c50]
add edx, 1
mov dword [ebp + 0x3c], edx
mov eax, 4
imul ecx, eax, 0x1a2f
mov edx, dword [ebp + 0x3c]
mov dword [ecx + 0x497c50], edx
mov eax, 4
imul ecx, eax, 0x3c6
mov edx, 0x27da553c
sub edx, dword [ebp + 0x3c]
or edx, dword [ecx + 0x497c50]
mov eax, 2
imul ecx, eax, 0x2804
movsx eax, word [ecx + 0x490a20]
and eax, edx
mov ecx, 2
imul edx, ecx, 0x2804
mov word [edx + 0x490a20], ax
mov eax, 4
imul ecx, eax, 0x3c6
mov edx, dword [ecx + 0x497c50]
sub edx, 1
mov eax, 4
imul ecx, eax, 0x3c6
mov dword [ecx + 0x497c50], edx
lea ecx, [ebp - 0x3d8]
call fcn.0040cd50
mov edx, 4
imul eax, edx, 0x2e8b
mov ecx, dword [eax + 0x497c50]
xor ecx, 0x3fa7d616
mov edx, 4
imul eax, edx, 0x2e8b
mov dword [eax + 0x497c50], ecx
lea ecx, [ebp - 0x2fc]
push ecx
lea ecx, [ebp - 0x3d8]
call fcn.004110b0
push eax
lea ecx, [ebp - 0x88]
call fcn.00423f10
lea edx, [ebp - 0x88]
push edx
lea ecx, [ebp + 0x5c]
call fcn.0045e000
lea ecx, [ebp - 0x88]
call fcn.00423fc0
mov eax, 2
imul ecx, eax, 0x18f3
movsx edx, word [ecx + 0x490a20]
xor edx, 0x3ce35c7d
mov eax, 2
imul ecx, eax, 0x21f1
movsx eax, word [ecx + 0x490a20]
xor edx, eax
cmp edx, 0x8f6c0667
jg 0x40fbf0
mov ecx, 2
imul edx, ecx, 0x3668
mov eax, 0x68b5
mov word [edx + 0x490a20], ax
jmp 0x40fc4e
mov ecx, 2
imul edx, ecx, 0x3273
movsx eax, word [edx + 0x490a20]
shl eax, 9
mov ecx, 0x42fb8d48
sub ecx, eax
cmp ecx, 0xb7b762b7
jg 0x40fc4e
mov edx, 4
imul eax, edx, 0x257c
mov ecx, 4
imul edx, ecx, 0x2316
mov ecx, 0xec0ddfa7
sub ecx, dword [edx + 0x497c50]
mov edx, dword [eax + 0x497c50]
or edx, ecx
mov eax, 4
imul ecx, eax, 0x257c
mov dword [ecx + 0x497c50], edx
push 9
lea ecx, [ebp + 0x5c]
call fcn.0040cfe0
mov edx, 4
imul eax, edx, 0x136
mov dword [eax + 0x497c50], 0xa6c75537
lea ecx, [ebp - 0x3d8]
call fcn.00412220
mov ecx, 4
imul edx, ecx, 0x212d
mov eax, dword [edx + 0x497c50]
and eax, 0x57f3717c
mov ecx, 4
imul edx, ecx, 0x212d
mov dword [edx + 0x497c50], eax
mov eax, dword [0x490834]
push eax
lea ecx, [ebp - 0xb0]
call fcn.00423f10
lea ecx, [ebp - 0xb0]
push ecx
lea ecx, [ebp + 0x5c]
call fcn.0045e000
lea ecx, [ebp - 0xb0]
call fcn.00423fc0
mov edx, 2
imul eax, edx, 0x145c
movsx ecx, word [eax + 0x490a20]
cmp ecx, 0x7c1885ec
je 0x40fd83
mov edx, 4
imul eax, edx, 0x297f
mov ecx, dword [eax + 0x497c50]
or ecx, 0x9c634dfe
mov dword [ebp + 0x30], ecx
mov edx, 4
imul eax, edx, 0x860
mov ecx, dword [eax + 0x497c50]
xor ecx, 0xea840557
mov dword [ebp + 0x2c], ecx
mov edx, 4
imul eax, edx, 0x860
mov ecx, dword [eax + 0x497c50]
add ecx, 1
mov edx, 4
imul eax, edx, 0x860
mov dword [eax + 0x497c50], ecx
mov ecx, 4
imul edx, ecx, 0x297f
mov eax, dword [edx + 0x497c50]
sub eax, 1
mov ecx, 4
imul edx, ecx, 0x297f
mov dword [edx + 0x497c50], eax
mov eax, dword [ebp + 0x30]
cmp eax, dword [ebp + 0x2c]
jne 0x40fd83
mov ecx, 4
imul edx, ecx, 0x158b
mov dword [edx + 0x497c50], 0x4b9d8529
lea eax, [ebp - 0x10]
push eax
push 1
lea ecx, [ebp + 0x5c]
call fcn.0041b8b0
push eax
lea ecx, [ebp + 0x5c]
call fcn.00459a40
push eax
call fcn.004178a0
add esp, 0x10
mov ecx, 4
imul edx, ecx, 0x2805
mov eax, dword [edx + 0x497c50]
add eax, 0x597f5c98
mov ecx, 4
imul edx, ecx, 0x2805
mov dword [edx + 0x497c50], eax
lea ecx, [ebp + 0x5c]
call fcn.0040dea0
mov eax, 4
imul ecx, eax, 0x370c
mov edx, 4
imul eax, edx, 0x403
mov edx, dword [eax + 0x497c50]
and edx, 0x52cda57
mov eax, dword [ecx + 0x497c50]
and eax, edx
mov ecx, 4
imul edx, ecx, 0x370c
mov dword [edx + 0x497c50], eax
lea ecx, [ebp - 0x10]
call fcn.0041b8b0
push eax
lea ecx, [ebp - 0x10]
call fcn.00459a40
push eax
lea ecx, [ebp + 0x5c]
call fcn.004115c0
mov eax, 4
imul ecx, eax, 0x1f4e
mov edx, dword [ecx + 0x497c50]
add edx, 0x7bb60e5a
mov eax, 4
imul ecx, eax, 0x1f4e
mov dword [ecx + 0x497c50], edx
lea edx, [ebp - 0x10]
push edx
call fcn.0040d770
add esp, 4
mov eax, 4
imul ecx, eax, 0x5c8
imul edx, dword [ecx + 0x497c50], 0x2bdc2273
mov eax, 4
imul ecx, eax, 0x5c8
mov dword [ecx + 0x497c50], edx
lea edx, [ebp + 0x5c]
push edx
mov ecx, dword [0x48ffd0]
call fcn.00457430
mov eax, 4
imul ecx, eax, 0x1fee
mov edx, dword [ecx + 0x497c50]
sub edx, 0x7e6474a0
mov eax, 4
imul ecx, eax, 0x1fee
mov dword [ecx + 0x497c50], edx
push 0x10
push 0
lea edx, [ebp + 4]
push edx
call fcn.00465b20
add esp, 0xc
mov eax, 4
imul ecx, eax, 0x21d6
mov edx, dword [ecx + 0x497c50]
add edx, 0x413ec70d
mov eax, 4
imul ecx, eax, 0x21d6
mov dword [ecx + 0x497c50], edx
push 0x11
push 0
lea edx, [ebp - 0x24]
push edx
call fcn.00465b20
add esp, 0xc
mov eax, 4
imul ecx, eax, 0x2328
mov edx, 4
imul eax, edx, 0x4f1
mov edx, 0x7a814c6c
sub edx, dword [eax + 0x497c50]
mov eax, dword [ecx + 0x497c50]
xor eax, edx
mov ecx, 4
imul edx, ecx, 0x2328
mov dword [edx + 0x497c50], eax
push 0x110
push 0
lea eax, [ebp - 0x2fc]
push eax
call fcn.00465b20
add esp, 0xc
mov ecx, 4
imul edx, ecx, 0xbe6
mov eax, dword [edx + 0x497c50]
add eax, 0x28699531
mov dword [ebp + 0x28], eax
mov ecx, 4
imul edx, ecx, 0xbe6
mov eax, dword [edx + 0x497c50]
sub eax, 1
mov ecx, 4
imul edx, ecx, 0xbe6
mov dword [edx + 0x497c50], eax
cmp dword [ebp + 0x28], 0x3050
je 0x40ffbd
mov eax, 4
imul ecx, eax, 0x38be
imul edx, dword [ecx + 0x497c50], 0x3a997d85
mov eax, 4
imul ecx, eax, 0x38be
mov dword [ecx + 0x497c50], edx
lea ecx, [ebp + 0x5c]
call fcn.00423fc0
lea ecx, [ebp - 0x10]
call fcn.00410e10
add ebp, 0x78
mov esp, ebp
pop ebp
ret