Function at 0x4ec1d9
Capabilities:
Resolve function by parsing pe exports

Disassembly:
sub esp, 0x298
mov ecx, dword [esp + 0x2a0]
mov edx, dword [esp + 0x2b4]
mov eax, dword [esp + 0x2b8]
push ebx
push ebp
xor ebx, ebx
push esi
push edi
mov edi, dword [esp + 0x2ac]
mov esi, dword [edi]
add ecx, 8
cmp edx, ebx
mov dword [esp + 0x18], ecx
mov dword [esp + 0x160], ebx
mov dword [esp + 0x168], ebx
mov dword [esp + 0x164], ebx
mov dword [esp + 0x108], ebx
mov dword [esp + 0x114], ebx
mov dword [esp + 0x110], ebx
mov dword [esp + 0x8c], ebx
mov dword [esp + 0xe4], esi
mov ecx, 4
je 0x4eb9b2
cmp dword [esp + 0x2c0], ecx
jne 0x4eb9b2
cmp eax, ebx
je 0x4eb9b2
mov eax, dword [eax + 4]
cmp eax, ebx
je 0x4eb9b2
mov dword [esp + 0x8c], eax
mov dword [esi + 8], ecx
jmp 0x4eb9b5
mov dword [esi + 8], ebx
cmp dword [edi + 0x134], ebx
je 0x4ebb69
mov eax, dword [esi + 0x14c]
cmp eax, ebx
je 0x4eb9e9
cmp dword [eax], 3
jne 0x4eb9e0
cmp dword [eax + 0x48], 5
jne 0x4eb9e0
cmp dword [eax + 0x4c], 7
je 0x4eba9e
push eax
call fcn.004eef30
add esp, 4
mov eax, dword [edi + 0x128]
lea edx, [eax - 1]
mov dword [esp + 0x14], edx
fild dword [esp + 0x14]
mov ecx, dword [edi + 0x12c]
lea edx, [ecx - 1]
push ebx
fstp dword [esp + 0x18]
push ebx
fld dword [0x66cb38]
mov dword [esp + 0xb8], ebx
fdiv dword [esp + 0x1c]
mov dword [esp + 0x1c], edx
mov edx, dword [edi + 0x130]
lea ebp, [edx - 1]
mov dword [esp + 0xb0], ebx
mov dword [esp + 0xa8], ebx
fstp dword [esp + 0xa4]
fild dword [esp + 0x1c]
fstp dword [esp + 0x1c]
fld dword [0x66cb38]
fdiv dword [esp + 0x1c]
mov dword [esp + 0x1c], ebp
mov ebp, dword [edi + 0x134]
push ebp
push edx
push ecx
push eax
movzx eax, byte [edi + 0x138]
push eax
push ebx
lea ebp, [esi + 0x14c]
push ebp
lea ebx, [esp + 0xc0]
fstp dword [esp + 0xc8]
fild dword [esp + 0x38]
fstp dword [esp + 0x38]
fld dword [0x66cb38]
fdiv dword [esp + 0x38]
fstp dword [esp + 0xd0]
call fcn.004e85a0
mov eax, dword [ebp]
add esp, 0x24
mov ecx, dword [eax + 0x1c]
mov edx, dword [eax + 0x20]
mov ebp, dword [eax + 0x34]
mov dword [esp + 0xf8], ecx
mov ecx, dword [eax + 0x2c]
mov dword [esp + 0xec], edx
mov edx, dword [eax + 0x30]
mov dword [esp + 0xe8], ecx
mov ecx, dword [eax + 0x38]
mov dword [esp + 0xf0], edx
mov edx, dword [eax + 0x3c]
mov dword [esp + 0xf4], ecx
mov ecx, dword [eax + 4]
mov dword [esp + 0x15c], edx
mov edx, dword [eax + 8]
mov dword [esp + 0x148], ecx
mov ecx, dword [eax + 0xc]
mov dword [esp + 0x13c], edx
mov edx, dword [eax + 0x48]
mov eax, dword [eax + 0x4c]
mov dword [esp + 0x7c], eax
mov eax, dword [esi + 0x20]
test eax, eax
mov dword [esp + 0x90], ebp
mov dword [esp + 0x150], ecx
mov dword [esp + 0x158], edx
je 0x4ebb45
mov eax, dword [esp + 0x8c]
test eax, eax
jne 0x4ebb45
movzx edx, byte [edi + 0x138]
mov ecx, 1
mov dword [esp + 0x98], ecx
mov dword [esp + 0x174], ecx
mov dword [esp + 0x60], edx
jmp 0x4ebb85
movzx edx, byte [edi + 0x138]
mov ecx, 1
mov dword [esp + 0x98], 0
mov dword [esp + 0x174], ecx
mov dword [esp + 0x60], edx
jmp 0x4ebb85
mov ebp, dword [esp + 0x90]
xor eax, eax
mov dword [esp + 0x98], eax
mov dword [esp + 0x174], eax
mov ecx, 1
mov eax, dword [esi + 0x168]
mov edi, dword [esp + 0x18]
mov edx, dword [esi + 0x16c]
mov ebx, dword [esi + 0x164]
mov dword [esp + 0x120], eax
mov eax, dword [esi + 0x170]
mov dword [esp + 0x128], eax
mov eax, dword [edi + 0x13c]
test eax, eax
mov eax, dword [edi + 0x140]
mov dword [esp + 0x124], edx
jne 0x4ebbe6
test eax, eax
jne 0x4ebbea
mov edx, 0x11
mov dword [esi + 0x168], edx
mov dword [esi + 0x164], edx
mov dword [esi + 0x170], ecx
jmp 0x4ebc78
test eax, eax
je 0x4ebc18
mov ecx, dword [edi + 0x138]
cmp ecx, 5
mov eax, 9
mov dword [esp + 0x6c], 4
jg 0x4ebc0b
lea ecx, [ecx + ecx - 1]
cmp ecx, 5
jle 0x4ebc02
mov edx, 0x11
mov dword [esi + 0x170], edx
jmp 0x4ebc2d
mov edx, 0x11
mov eax, edx
mov dword [esp + 0x6c], 3
mov dword [esi + 0x170], ecx
mov ecx, dword [edi + 0x12c]
inc eax
sar eax, 1
cmp ecx, eax
jg 0x4ebc48
lea ebx, [ebx]
lea ecx, [ecx + ecx - 1]
cmp ecx, eax
jle 0x4ebc40
mov dword [esi + 0x164], edx
mov ecx, dword [edi + 0x130]
cmp ecx, eax
jg 0x4ebc60
lea ecx, [ecx + ecx - 1]
cmp ecx, eax
jle 0x4ebc58
mov dword [esi + 0x168], edx
mov ecx, dword [edi + 0x134]
cmp ecx, eax
jg 0x4ebc78
lea ecx, [ecx + ecx - 1]
cmp ecx, eax
jle 0x4ebc70
mov ecx, dword [esi + 0x170]
lea eax, [ecx - 1]
mov dword [esi + 0x16c], edx
mov dword [esp + 0x68], eax
mov eax, dword [edi + 0x13c]
test eax, eax
mov dword [esp + 0xdc], ecx
jne 0x4ebcd1
mov eax, dword [edi + 0x140]
test eax, eax
jne 0x4ebcd1
mov eax, dword [esi + 0x150]
xor ebx, ebx
cmp eax, ebx
je 0x4ebcc1
push eax
call fcn.004eef30
add esp, 4
mov dword [esi + 0x150], ebx
mov dword [esp + 0x50], ebx
mov dword [esp + 0x80], ebx
jmp 0x4ebf0f
mov eax, dword [esi + 0x150]
test eax, eax
lea edi, [esi + 0x150]
je 0x4ebd0d
cmp ebx, edx
jne 0x4ebd04
cmp dword [esp + 0x120], edx
jne 0x4ebd04
cmp dword [esp + 0x124], edx
jne 0x4ebd04
cmp dword [esp + 0x128], ecx
je 0x4ebe32
push eax
call fcn.004eef30
add esp, 4
mov eax, dword [esp + 0x18]
mov ecx, dword [eax + 0x12c]
lea edx, [ecx - 1]
mov dword [esp + 0x14], edx
fild dword [esp + 0x14]
mov edx, dword [eax + 0x130]
lea ebx, [edx - 1]
push 0
fstp dword [esp + 0x18]
push 0
fld dword [0x66cb38]
fdiv dword [esp + 0x1c]
mov dword [esp + 0x1c], ebx
mov ebx, dword [eax + 0x134]
lea eax, [ebx - 1]
fstp dword [esp + 0xa4]
fild dword [esp + 0x1c]
fstp dword [esp + 0x1c]
fld dword [0x66cb38]
fdiv dword [esp + 0x1c]
mov dword [esp + 0x1c], eax
xor eax, eax
mov dword [esp + 0xb8], eax
mov dword [esp + 0xb0], eax
mov dword [esp + 0xa8], eax
mov eax, dword [esp + 0x20]
mov eax, dword [eax + 0x140]
mov dword [esp + 0x10c], eax
test eax, eax
mov eax, dword [esp + 0x20]
fstp dword [esp + 0xac]
fild dword [esp + 0x1c]
fstp dword [esp + 0x1c]
fld dword [0x66cb38]
fdiv dword [esp + 0x1c]
fstp dword [esp + 0xb4]
je 0x4ebe12
mov eax, dword [eax + 0x138]
lea edi, [eax - 1]
mov dword [esp + 0x1c], edi
fild dword [esp + 0x1c]
mov edi, dword [esp + 0x10c]
push edi
push eax
fstp dword [esp + 0x24]
push ebx
fld dword [0x66cb38]
push edx
fdiv dword [esp + 0x2c]
push ecx
push 3
push 0
lea ebx, [esi + 0x150]
push ebx
lea edi, [esp + 0xc4]
mov dword [esp + 0xe0], 0
fstp dword [esp + 0xdc]
call fcn.004e8b70
mov eax, dword [ebx]
add esp, 0x28
jmp 0x4ebe32
mov eax, dword [eax + 0x13c]
push eax
push ebx
push edx
push ecx
push 3
push 0
push edi
lea ebx, [esp + 0xc0]
call fcn.004e85a0
mov eax, dword [edi]
add esp, 0x24
cmp dword [eax], 4
mov edi, dword [esp + 0x18]
jne 0x4ebe83
mov ecx, dword [eax + 0x10]
mov edx, dword [eax + 0x14]
mov dword [esp + 0x184], ecx
mov ecx, dword [eax + 0x18]
mov dword [esp + 0x144], edx
mov edx, dword [eax + 0x24]
mov dword [esp + 0xcc], ecx
mov ecx, dword [eax + 0x28]
mov dword [esp + 0xd8], edx
mov edx, dword [eax + 0x2c]
mov dword [esp + 0xc4], ecx
mov ecx, dword [eax + 0x30]
mov dword [esp + 0xc8], edx
mov dword [esp + 0x16c], ecx
jmp 0x4ebeab
mov edx, dword [eax + 0x1c]
mov ecx, dword [eax + 0x20]
mov dword [esp + 0xcc], edx
mov edx, dword [eax + 0x2c]
mov dword [esp + 0xc4], ecx
mov ecx, dword [eax + 0x30]
mov dword [esp + 0xd8], edx
mov dword [esp + 0xc8], ecx
mov edx, dword [eax + 4]
mov ecx, dword [eax + 8]
mov dword [esp + 0x14c], edx
mov edx, dword [eax + 0xc]
mov dword [esp + 0x154], ecx
mov ecx, dword [eax + 0x34]
mov dword [esp + 0x170], edx
mov edx, dword [eax + 0x38]
mov dword [esp + 0x17c], ecx
mov ecx, dword [eax + 0x3c]
mov dword [esp + 0x88], edx
mov edx, dword [eax + 0x48]
mov eax, dword [eax + 0x4c]
mov dword [esp + 0x178], ecx
mov ecx, dword [esi + 0x38]
mov dword [esp + 0x180], edx
mov dword [esp + 0x94], eax
mov dword [esp + 0x50], ecx
mov dword [esp + 0x80], 1
xor ebx, ebx
cmp dword [esp + 0x98], ebx
je 0x4ebf22
mov edx, dword [esp + 0x60]
mov dword [esp + 0x34], edx
jmp 0x4ebf5c
mov eax, dword [esp + 0x2c0]
cmp eax, 4
ja case.0x4ebf2e.2
jmp dword [eax*4 + 0x4ee2ac]
mov dword [esp + 0x34], 1
jmp 0x4ebf5c
mov dword [esp + 0x34], 3
jmp 0x4ebf5c
mov dword [esp + 0x34], 4
jmp 0x4ebf5c
push ebx
call fcn.0044b1f0
add esp, 4
mov eax, dword [esp + 0x80]
test eax, eax
mov ebx, dword [esp + 0x2c4]
mov dword [esi + 0x40], ebx
je 0x4ec079
mov eax, dword [edi + 0x140]
test eax, eax
je 0x4ec079
mov eax, dword [0x6bf274]
mov ecx, dword [eax]
push 0x44
push 1
push eax
mov dword [esp + 0x70], 1
call dword [ecx + 4]
add esp, 0xc
test eax, eax
mov dword [esi + 0x160], eax
jne 0x4ebfb5
push eax
push 0x203
call fcn.0047e830
add esp, 8
mov eax, dword [0x6bf274]
mov edx, dword [eax]
push 0x484
push 1
push eax
call dword [edx + 4]
mov ebx, eax
add esp, 0xc
test ebx, ebx
mov dword [esp + 0x40], ebx
jne 0x4ebfe2
push eax
push 0x203
call fcn.0047e830
add esp, 8
mov eax, dword [esp + 0x2c4]
test eax, eax
mov eax, dword [esp + 0x34]
je 0x4ec106
imul eax, dword [esp + 0xdc]
mov edi, eax
shl edi, 4
add edi, eax
xor eax, eax
mov ecx, dword [esi + 0x160]
mov dword [ecx + eax*4], ebx
inc eax
add ebx, 0x44
cmp eax, 0x11
jl 0x4ec006
mov eax, dword [0x6bf4a0]
mov edx, dword [eax]
mov ecx, edi
imul ecx, ecx, 0x121
push ecx
push eax
call dword [edx]
mov ebx, eax
add esp, 8
test ebx, ebx
jne 0x4ec042
push eax
push 0x203
call fcn.0047e830
add esp, 8
xor ecx, ecx
mov dword [esp + 0x40], 0x11
lea esp, [esp]
xor eax, eax
mov edx, dword [esi + 0x160]
mov edx, dword [edx + ecx]
mov dword [edx + eax*4], ebx
add ebx, edi
inc eax
cmp eax, 0x11
jl 0x4ec052
mov eax, dword [esp + 0x40]
add ecx, 4
dec eax
mov dword [esp + 0x40], eax
jne 0x4ec050
jmp 0x4ec1ee
mov eax, dword [0x6bf274]
mov ecx, dword [eax]
push 0x44
push 1
push eax
mov dword [esp + 0x70], 0
call dword [ecx + 4]
add esp, 0xc
test eax, eax
mov dword [esi + 0x15c], eax
jne 0x4ec0ab
push eax
push 0x203
call fcn.0047e830
add esp, 8
test ebx, ebx
je 0x4ec1a9
mov ebx, dword [esp + 0x34]
mov eax, dword [0x6bf4a0]
imul ebx, ebx, 0x121
mov edx, dword [eax]
mov ecx, ebx
shl ecx, 4
add ecx, ebx
push ecx
push eax
call dword [edx]
mov edi, eax
add esp, 8
test edi, edi
jne 0x4ec0e6
push eax
push 0x203
call fcn.0047e830
add esp, 8
xor eax, eax
jmp 0x4ec0f0
mov edx, dword [esi + 0x15c]
mov dword [edx + eax*4], edi
add edi, ebx
inc eax
cmp eax, 0x11
jl 0x4ec0f0
jmp 0x4ec1ee
imul eax, dword [esp + 0xdc]
mov ecx, eax
shl ecx, 4
add ecx, eax
mov dword [esp + 0x14], ecx
xor edi, edi
mov dword [esp + 0x84], 0x11
jmp 0x4ec130
mov eax, dword [esp + 0x40]
mov ecx, dword [esi + 0x160]
mov dword [edi + ecx], eax
xor ebx, ebx
add eax, 0x44
mov dword [esp + 0x40], eax
jmp 0x4ec150
mov ecx, dword [esp + 0x14]
mov eax, dword [0x6bf274]
mov edx, dword [eax]
push ecx
push eax
call dword [edx]
mov edx, dword [esi + 0x160]
mov ecx, dword [edx + edi]
mov dword [ecx + ebx*4], eax
mov edx, dword [esi + 0x160]
mov eax, dword [edx + edi]
mov ecx, dword [eax + ebx*4]
add esp, 8
test ecx, ecx
jne 0x4ec18d
push 0
push 0x203
call fcn.0047e830
add esp, 8
inc ebx
cmp ebx, 0x11
jl 0x4ec150
mov eax, dword [esp + 0x84]
add edi, 4
dec eax
mov dword [esp + 0x84], eax
jne 0x4ec130
jmp 0x4ec1ee
mov edi, dword [esp + 0x34]
imul edi, edi, 0x121
xor ebx, ebx
mov eax, dword [0x6bf274]
mov ecx, dword [eax]
push edi
push eax
call dword [ecx]
mov edx, dword [esi + 0x15c]
mov dword [edx + ebx*4], eax
mov eax, dword [esi + 0x15c]
mov ecx, dword [eax + ebx*4]
add esp, 8
test ecx, ecx
jne 0x4ec1e8
push 0
push 0x203
call fcn.0047e830
add esp, 8
inc ebx
cmp ebx, 0x11
jl 0x4ec1b5
mov eax, dword [esp + 0x80]
test eax, eax
jne 0x4ec218
mov ebx, dword [esp + 0x2b4]
lea ecx, [esp + 0x188]
push ecx
mov ecx, dword [esp + 0x1c]
mov eax, esi
call fcn.004ea810
add esp, 4
jmp 0x4ec25a
mov eax, dword [esp + 0x50]
test eax, eax
je 0x4ec23a
mov edx, dword [esp + 0x6c]
mov ecx, dword [esp + 0x18]
lea eax, [edx + edx]
push eax
add ecx, 0x18
push ecx
lea edx, [esp + 0x190]
push edx
jmp 0x4ec252
mov eax, dword [esp + 0x6c]
mov edx, dword [esp + 0x18]
lea ecx, [eax + eax]
push ecx
add edx, 0x38
push edx
lea eax, [esp + 0x190]
push eax
call fcn.004ef6d0
add esp, 0xc
mov eax, dword [esp + 0x2b8]
xor edi, edi
cmp eax, edi
mov edx, 0x417f0000
jne 0x4ec2bb
fild dword [esp + 0x68]
mov dword [esp + 0x9c], edx
mov dword [esp + 0xa4], edx
mov dword [esp + 0xac], edx
fstp dword [esp + 0x14]
mov dword [esp + 0xb8], edi
fld dword [0x66cb38]
mov dword [esp + 0xb0], edi
fdiv dword [esp + 0x14]
mov dword [esp + 0xa8], edi
mov dword [esp + 0xa0], edi
fstp dword [esp + 0xb4]
jmp 0x4ec48d
mov ecx, dword [esp + 0x2b4]
fld dword [ecx]
fld dword [ecx + 4]
fucompp
fnstsw ax
test ah, 0x44
jp 0x4ec2e0
mov dword [esp + 0x9c], edx
mov dword [esp + 0xa0], edi
jmp 0x4ec32a
fld dword [ecx + 4]
fsub dword [ecx]
fstp dword [esp + 0x40]
fld dword [esp + 0x18c]
fsub dword [esp + 0x188]
fmul dword [0x66cb38]
fld dword [esp + 0x40]
fmul dword [0x674698]
fdivp st(1)
fstp dword [esp + 0x9c]
fld dword [esp + 0x188]
fsub dword [ecx]
fmul dword [0x66cb38]
fdiv dword [esp + 0x40]
fstp dword [esp + 0xa0]
fld dword [ecx + 8]
fld dword [ecx + 0xc]
fucompp
fnstsw ax
test ah, 0x44
jp 0x4ec349
mov dword [esp + 0xa4], edx
mov dword [esp + 0xa8], edi
jmp 0x4ec395
fld dword [ecx + 0xc]
fsub dword [ecx + 8]
fstp dword [esp + 0x40]
fld dword [esp + 0x194]
fsub dword [esp + 0x190]
fmul dword [0x66cb38]
fld dword [esp + 0x40]
fmul dword [0x674698]
fdivp st(1)
fstp dword [esp + 0xa4]
fld dword [esp + 0x190]
fsub dword [ecx + 8]
fmul dword [0x66cb38]
fdiv dword [esp + 0x40]
fstp dword [esp + 0xa8]
fld dword [ecx + 0x10]
fld dword [ecx + 0x14]
fucompp
fnstsw ax
test ah, 0x44
jp 0x4ec3b4
mov dword [esp + 0xac], edx
mov dword [esp + 0xb0], edi
jmp 0x4ec400
fld dword [ecx + 0x14]
fsub dword [ecx + 0x10]
fstp dword [esp + 0x40]
fld dword [esp + 0x19c]
fsub dword [esp + 0x198]
fmul dword [0x66cb38]
fld dword [esp + 0x40]
fmul dword [0x674698]
fdivp st(1)
fstp dword [esp + 0xac]
fld dword [esp + 0x198]
fsub dword [ecx + 0x10]
fmul dword [0x66cb38]
fdiv dword [esp + 0x40]
fstp dword [esp + 0xb0]
cmp dword [esp + 0x64], edi
je 0x4ec48d
fld dword [ecx + 0x18]
fld dword [ecx + 0x1c]
fucompp
fnstsw ax
test ah, 0x44
jp 0x4ec43b
fild dword [esp + 0x68]
mov dword [esp + 0xb8], edi
fstp dword [esp + 0x14]
fld dword [0x66cb38]
fdiv dword [esp + 0x14]
fstp dword [esp + 0xb4]
jmp 0x4ec48d
fld dword [ecx + 0x1c]
fsub dword [ecx + 0x18]
fstp dword [esp + 0x40]
fld dword [esp + 0x1a4]
fsub dword [esp + 0x1a0]
fmul dword [0x66cb38]
fild dword [esp + 0x68]
fstp dword [esp + 0x14]
fld dword [esp + 0x14]
fmul dword [esp + 0x40]
fdivp st(1)
fstp dword [esp + 0xb4]
fld dword [esp + 0x1a0]
fsub dword [ecx + 0x18]
fmul dword [0x66cb38]
fdiv dword [esp + 0x40]
fstp dword [esp + 0xb8]
cmp dword [esp + 0x80], edi
je 0x4ec4fb
cmp dword [esp + 0x68], edi
mov dword [esp + 0x11c], edx
mov dword [esp + 0x120], edi
mov dword [esp + 0x124], edx
mov dword [esp + 0x128], edi
mov dword [esp + 0x12c], edx
mov dword [esp + 0x130], edi
je 0x4ec4eb
fild dword [esp + 0x68]
mov dword [esp + 0x138], edi
fstp dword [esp + 0x14]
fld dword [0x66cb38]
fdiv dword [esp + 0x14]
fstp dword [esp + 0x134]
jmp 0x4ec56b
mov dword [esp + 0x134], edi
mov dword [esp + 0x138], edi
jmp 0x4ec56b
mov ecx, dword [esp + 0x9c]
mov edx, dword [esp + 0xa0]
mov eax, dword [esp + 0xa4]
mov dword [esp + 0x11c], ecx
mov ecx, dword [esp + 0xa8]
mov dword [esp + 0x120], edx
mov edx, dword [esp + 0xac]
mov dword [esp + 0x124], eax
mov eax, dword [esp + 0xb0]
mov dword [esp + 0x128], ecx
mov ecx, dword [esp + 0xb4]
mov dword [esp + 0x12c], edx
mov edx, dword [esp + 0xb8]
mov dword [esp + 0x130], eax
mov dword [esp + 0x134], ecx
mov dword [esp + 0x138], edx
mov eax, dword [esp + 0x64]
mov ecx, dword [esp + 0x50]
cmp eax, edi
lea eax, [esi + 0x13c]
push eax
push ecx
je 0x4ec5b9
mov edx, dword [esi + 0x160]
mov eax, dword [esp + 0xe4]
mov ecx, dword [esp + 0x3c]
push edx
mov edx, dword [esp + 0xa4]
push eax
push 0x11
push 0x11
push 0x11
push ecx
push edx
add esi, 0x154
push esi
lea edi, [esp + 0xc4]
call fcn.004e8b70
add esp, 0x28
jmp 0x4ec5e9
mov edx, dword [esi + 0x15c]
mov eax, dword [esp + 0x3c]
mov ecx, dword [esp + 0xa0]
push edx
push 0x11
push 0x11
push 0x11
push eax
push ecx
add esi, 0x154
push esi
lea ebx, [esp + 0xc0]
call fcn.004e85a0
add esp, 0x24
mov esi, dword [esp + 0x2b8]
test esi, esi
je 0x4ec62d
mov eax, dword [esp + 0x80]
test eax, eax
je 0x4ec608
mov eax, dword [esp + 0x18]
add eax, 0x58
jmp 0x4ec60f
mov eax, dword [esp + 0x2b4]
push 6
push eax
push esi
call fcn.004ef6d0
mov edx, dword [esp + 0x2b8]
add edx, 0x20
push edx
mov eax, esi
call fcn.004eae10
add esp, 0x10
mov eax, dword [0x6bf274]
mov ecx, dword [eax]
push 0x11
push eax
call dword [ecx]
mov esi, eax
mov eax, dword [0x6bf274]
mov edx, dword [eax]
push 0x11
push eax
mov dword [esp + 0x50], esi
call dword [edx]
mov edi, eax
mov eax, dword [0x6bf274]
mov ecx, dword [eax]
push 0x11
push eax
mov dword [esp + 0x11c], edi
call dword [ecx]
mov ecx, dword [esp + 0xf4]
mov ebx, eax
mov eax, dword [0x6bf274]
mov edx, dword [eax]
push ecx
push eax
mov dword [esp + 0x34], ebx
call dword [edx]
add esp, 0x20
test esi, esi
mov dword [esp + 0x6c], eax
je 0x4ec69e
test edi, edi
je 0x4ec68f
test ebx, ebx
je 0x4ec68f
test eax, eax
jne 0x4ec6ea
mov eax, dword [0x6bf274]
mov edx, dword [eax]
push esi
push eax
call dword [edx + 8]
add esp, 8
test edi, edi
je 0x4ec6b1
mov eax, dword [0x6bf274]
mov ecx, dword [eax]
push edi
push eax
call dword [ecx + 8]
add esp, 8
test ebx, ebx
je 0x4ec6c4
mov eax, dword [0x6bf274]
mov edx, dword [eax]
push ebx
push eax
call dword [edx + 8]
add esp, 8
mov ecx, dword [esp + 0x6c]
test ecx, ecx
je 0x4ec6db
mov eax, dword [0x6bf274]
mov edx, dword [eax]
push ecx
push eax
call dword [edx + 8]
add esp, 8
push 0
push 0x203
call fcn.0047e830
add esp, 8
xor esi, esi
mov dword [esp + 0x34], esi
fild dword [esp + 0x34]
fstp dword [esp + 0x4c]
fld dword [esp + 0x4c]
fmul dword [esp + 0x11c]
fadd dword [esp + 0x120]
fadd dword [0x66d5e0]
call fcn.00667ad0
test eax, eax
jge 0x4ec71d
xor eax, eax
jmp 0x4ec729
cmp eax, 0xff
jle 0x4ec729
mov eax, 0xff
mov ecx, dword [esp + 0x40]
mov byte [ecx + esi], al
inc esi
cmp esi, 0x10
mov dword [esp + 0x34], esi
jle 0x4ec6f0
xor esi, esi
mov dword [esp + 0x34], esi
fild dword [esp + 0x34]
fstp dword [esp + 0x4c]
fld dword [esp + 0x4c]
fmul dword [esp + 0x124]
fadd dword [esp + 0x128]
fadd dword [0x66d5e0]
call fcn.00667ad0
test eax, eax
jge 0x4ec76d
xor eax, eax
jmp 0x4ec779
cmp eax, 0xff
jle 0x4ec779
mov eax, 0xff
mov byte [edi + esi], al
inc esi
cmp esi, 0x10
mov dword [esp + 0x34], esi
jle 0x4ec740
xor esi, esi
mov dword [esp + 0x34], esi
lea esp, [esp]
fild dword [esp + 0x34]
fstp dword [esp + 0x4c]
fld dword [esp + 0x4c]
fmul dword [esp + 0x12c]
fadd dword [esp + 0x130]
fadd dword [0x66d5e0]
call fcn.00667ad0
test eax, eax
jge 0x4ec7bd
xor eax, eax
jmp 0x4ec7c9
cmp eax, 0xff
jle 0x4ec7c9
mov eax, 0xff
mov byte [ebx + esi], al
inc esi
cmp esi, 0x10
mov dword [esp + 0x34], esi
jle 0x4ec790
mov eax, dword [esp + 0x64]
test eax, eax
je 0x4ec835
mov edi, dword [esp + 0x68]
xor esi, esi
test edi, edi
mov dword [esp + 0x34], esi
jl 0x4ec835
mov ebx, dword [esp + 0x6c]
fild dword [esp + 0x34]
fstp dword [esp + 0x4c]
fld dword [esp + 0x4c]
fmul dword [esp + 0x134]
fadd dword [esp + 0x138]
fadd dword [0x66d5e0]
call fcn.00667ad0
test eax, eax
jge 0x4ec81d
xor eax, eax
jmp 0x4ec829
cmp eax, 0xff
jle 0x4ec829
mov eax, 0xff
mov byte [ebx + esi], al
inc esi
cmp esi, edi
mov dword [esp + 0x34], esi
jle 0x4ec7f0
mov eax, dword [esp + 0x2bc]
test eax, eax
je 0x4ec87c
mov edx, dword [eax + 0xc]
mov ecx, dword [eax + 0x10]
mov dword [esp + 0x160], edx
mov edx, dword [eax + 0x14]
mov dword [esp + 0x168], ecx
mov ecx, dword [eax + 8]
mov dword [esp + 0x164], edx
mov edx, dword [eax + 0x1c]
mov eax, dword [eax + 0x18]
mov dword [esp + 0x108], ecx
mov dword [esp + 0x110], edx
mov dword [esp + 0x114], eax
mov ecx, dword [esp + 0x40]
mov dword [esp + 0x50], ecx
mov dword [esp + 0x34], 0
lea esp, [esp]
mov eax, dword [esp + 0x64]
test eax, eax
jne 0x4ec8b0
mov edx, dword [esp + 0xe4]
mov eax, dword [edx + 0x15c]
mov ecx, dword [esp + 0x34]
mov edx, dword [eax + ecx*4]
mov dword [esp + 0x58], edx
mov eax, dword [esp + 0x104]
mov dword [esp + 0xc0], eax
mov dword [esp + 0x84], 0
lea esp, [esp]
mov eax, dword [esp + 0x64]
test eax, eax
je 0x4ec8fa
mov ecx, dword [esp + 0xe4]
mov edx, dword [ecx + 0x160]
mov eax, dword [esp + 0x34]
mov ecx, dword [edx + eax*4]
mov edx, dword [esp + 0x84]
mov eax, dword [ecx + edx*4]
mov dword [esp + 0x58], eax
mov ecx, dword [esp + 0x14]
mov dword [esp + 0xd0], ecx
mov dword [esp + 0x4c], 0
lea ecx, [ecx]
mov eax, dword [esp + 0x68]
test eax, eax
mov edx, dword [esp + 0x6c]
mov dword [esp + 0x118], edx
mov dword [esp + 0x140], 0
jl 0x4edf54
jmp 0x4ec940
mov eax, dword [esp + 0x80]
test eax, eax
je 0x4ed38f
mov eax, dword [esp + 0x64]
test eax, eax
je 0x4ed037
mov eax, dword [esp + 0x50]
movzx edx, byte [eax]
mov eax, dword [esp + 0xd0]
movzx esi, byte [eax]
mov ecx, dword [esp + 0xc0]
movzx ebx, byte [ecx]
mov eax, dword [esp + 0x14c]
mov edi, dword [eax + edx*4]
mov ecx, dword [esp + 0x118]
movzx ecx, byte [ecx]
mov eax, dword [esp + 0x154]
mov ebp, dword [esp + 0x170]
mov ebp, dword [ebp + esi*4]
mov eax, dword [eax + ebx*4]
cmp edi, eax
mov dword [esp + 0x10], esi
mov esi, dword [esp + 0x184]
mov esi, dword [esi + ecx*4]
mov dword [esp + 0x74], edx
mov dword [esp + 0x24], ecx
mov dword [esp + 0x3c], edi
mov dword [esp + 0x38], eax
mov dword [esp + 0x78], ebp
jne 0x4eca7e
cmp eax, ebp
jne 0x4eca7e
cmp ebp, esi
jne 0x4eca7e
mov eax, dword [esp + 0x16c]
mov ecx, dword [eax + ecx*4]
mov eax, dword [esp + 0xc8]
mov esi, dword [esp + 0x10]
mov ebp, dword [eax + esi*4]
mov eax, dword [esp + 0xd8]
mov eax, dword [eax + ebx*4]
mov esi, dword [esp + 0x144]
mov esi, dword [esi + edx*4]
mov esi, dword [esi + eax*4]
mov eax, dword [esp + 0xc4]
mov eax, dword [eax + ebx*4]
mov ebx, dword [esp + 0xcc]
mov edx, dword [ebx + edx*4]
mov eax, dword [edx + eax*4]
add ecx, ebp
add eax, ecx
add esi, ecx
mov ecx, dword [esp + 0x178]
movzx ebx, byte [eax + ecx]
add eax, ecx
movzx ecx, byte [esi]
movzx edx, byte [eax + 1]
movzx ebp, byte [esi + 1]
sub ebx, ecx
imul ebx, edi
shl ecx, 4
add ebx, ecx
mov ecx, dword [esp + 0x180]
sar ebx, cl
inc esi
movzx esi, byte [esi + 1]
inc eax
movzx eax, byte [eax + 1]
sub edx, ebp
sub eax, esi
imul edx, edi
imul eax, edi
shl ebp, 4
add edx, ebp
mov ebp, dword [esp + 0x90]
shl esi, 4
add eax, esi
sar edx, cl
sar eax, cl
jmp 0x4ed3aa
mov eax, dword [esp + 0x16c]
mov ecx, dword [eax + ecx*4]
mov edi, dword [esp + 0x10]
mov eax, dword [esp + 0xc8]
add ecx, dword [eax + edi*4]
mov eax, dword [esp + 0xd8]
mov eax, dword [eax + ebx*4]
mov edi, dword [esp + 0x144]
mov edx, dword [edi + edx*4]
shl eax, 2
mov dword [esp + 0x70], eax
mov dword [esp + 0x5c], edx
mov edx, dword [edx + eax]
mov eax, dword [esp + 0x17c]
add edx, ecx
lea edi, [edx + eax]
mov dword [esp + 0x54], edi
mov edi, dword [esp + 0x88]
mov dword [esp + 0x48], ecx
add edi, edx
mov dword [esp + 0x100], edi
add edi, eax
mov dword [esp + 0xbc], edi
mov edi, dword [esp + 0xc4]
mov edi, dword [edi + ebx*4]
mov ebx, dword [esp + 0x5c]
shl edi, 2
mov dword [esp + 0x1c], edi
mov edi, dword [edi + ebx]
add edi, ecx
mov ebx, dword [esp + 0x74]
lea ecx, [edi + eax]
mov dword [esp + 0xd4], ecx
mov ecx, dword [esp + 0x88]
add ecx, edi
mov dword [esp + 0x18], ecx
add ecx, eax
mov dword [esp + 0xe0], ecx
mov ecx, dword [esp + 0xcc]
mov ecx, dword [ecx + ebx*4]
mov ebx, dword [esp + 0x70]
mov dword [esp + 0x5c], ecx
mov ecx, dword [ecx + ebx]
add ecx, dword [esp + 0x48]
lea ebx, [ecx + eax]
mov dword [esp + 0x30], ecx
mov dword [esp + 0x70], ebx
mov ebx, dword [esp + 0x88]
add ecx, ebx
mov ebx, dword [esp + 0x1c]
mov dword [esp + 0x28], ecx
add ecx, eax
mov dword [esp + 0x74], ecx
mov ecx, dword [esp + 0x5c]
mov ebx, dword [ecx + ebx]
add ebx, dword [esp + 0x48]
lea ecx, [ebx + eax]
mov dword [esp + 0x5c], ecx
mov ecx, dword [esp + 0x88]
add ecx, ebx
mov dword [esp + 0x2c], ecx
add ecx, eax
mov eax, dword [esp + 0x54]
movzx eax, byte [eax]
mov dword [esp + 0x48], ecx
movzx ecx, byte [edx]
sub eax, ecx
imul eax, esi
shl ecx, 4
add eax, ecx
mov ecx, dword [esp + 0x100]
sar eax, 2
mov dword [esp + 0x1c], eax
movzx eax, byte [ecx]
mov ecx, dword [esp + 0xbc]
movzx ecx, byte [ecx]
mov dword [esp + 0x10], edi
mov dword [esp + 0x20], ebx
sub ecx, eax
imul ecx, esi
movzx edi, byte [edi]
shl eax, 4
add ecx, eax
mov eax, dword [esp + 0x1c]
sar ecx, 2
sub ecx, eax
imul ecx, ebp
shl eax, 4
add ecx, eax
mov eax, dword [esp + 0xd4]
movzx eax, byte [eax]
sub eax, edi
imul eax, esi
shl edi, 4
add eax, edi
sar eax, 2
mov dword [esp + 0x1c], eax
mov eax, dword [esp + 0x18]
movzx edi, byte [eax]
mov eax, dword [esp + 0xe0]
movzx eax, byte [eax]
sub eax, edi
imul eax, esi
shl edi, 4
add eax, edi
mov edi, dword [esp + 0x1c]
sar eax, 2
sub eax, edi
sar ecx, 4
imul eax, ebp
shl edi, 4
add eax, edi
sar eax, 4
sub eax, ecx
imul eax, dword [esp + 0x38]
shl ecx, 4
add eax, ecx
mov ecx, dword [esp + 0x30]
movzx edi, byte [ecx]
mov ecx, dword [esp + 0x70]
movzx ecx, byte [ecx]
sub ecx, edi
imul ecx, esi
shl edi, 4
add ecx, edi
sar ecx, 2
mov dword [esp + 0x1c], ecx
mov ecx, dword [esp + 0x28]
movzx edi, byte [ecx]
mov ecx, dword [esp + 0x74]
movzx ecx, byte [ecx]
sub ecx, edi
movzx ebx, byte [ebx]
imul ecx, esi
shl edi, 4
add ecx, edi
mov edi, dword [esp + 0x1c]
sar ecx, 2
sub ecx, edi
imul ecx, ebp
shl edi, 4
add ecx, edi
mov edi, dword [esp + 0x5c]
movzx edi, byte [edi]
sub edi, ebx
imul edi, esi
shl ebx, 4
add edi, ebx
mov ebx, dword [esp + 0x48]
movzx ebx, byte [ebx]
sar edi, 2
mov dword [esp + 0x1c], edi
mov edi, dword [esp + 0x2c]
movzx edi, byte [edi]
sub ebx, edi
imul ebx, esi
shl edi, 4
sar eax, 4
sar ecx, 4
add ebx, edi
mov edi, dword [esp + 0x1c]
sar ebx, 2
sub ebx, edi
imul ebx, ebp
shl edi, 4
add ebx, edi
sar ebx, 4
sub ebx, ecx
imul ebx, dword [esp + 0x38]
shl ecx, 4
add ebx, ecx
sar ebx, 4
sub ebx, eax
imul ebx, dword [esp + 0x3c]
mov ecx, dword [esp + 0x94]
mov edi, dword [esp + 0x100]
shl eax, 4
add ebx, eax
sar ebx, cl
mov eax, dword [esp + 0x54]
mov ecx, dword [esp + 0xbc]
inc edx
inc eax
inc edi
inc ecx
mov dword [esp + 0xbc], ecx
inc dword [esp + 0x10]
inc dword [esp + 0xd4]
inc dword [esp + 0x18]
inc dword [esp + 0xe0]
inc dword [esp + 0x30]
inc dword [esp + 0x70]
inc dword [esp + 0x28]
inc dword [esp + 0x74]
inc dword [esp + 0x20]
inc dword [esp + 0x5c]
inc dword [esp + 0x2c]
inc dword [esp + 0x48]
movzx ecx, byte [edx]
mov dword [esp + 0x54], eax
movzx eax, byte [eax]
sub eax, ecx
imul eax, esi
shl ecx, 4
add eax, ecx
mov ecx, dword [esp + 0xbc]
movzx ecx, byte [ecx]
mov dword [esp + 0x10c], edx
movzx edx, byte [edi]
sub ecx, edx
imul ecx, esi
shl edx, 4
add ecx, edx
sar eax, 2
sar ecx, 2
mov dword [esp + 0x100], edi
sub ecx, eax
mov edx, dword [esp + 0x10]
imul ecx, ebp
shl eax, 4
add ecx, eax
movzx eax, byte [edx]
mov edx, dword [esp + 0xd4]
movzx edx, byte [edx]
sub edx, eax
imul edx, esi
shl eax, 4
add edx, eax
mov eax, dword [esp + 0x18]
movzx edi, byte [eax]
mov eax, dword [esp + 0xe0]
movzx eax, byte [eax]
sub eax, edi
sar edx, 2
imul eax, esi
shl edi, 4
add eax, edi
sar eax, 2
sub eax, edx
shl edx, 4
imul eax, ebp
add eax, edx
sar ecx, 4
mov edx, dword [esp + 0x70]
movzx edx, byte [edx]
sar eax, 4
sub eax, ecx
imul eax, dword [esp + 0x38]
shl ecx, 4
add eax, ecx
mov ecx, dword [esp + 0x30]
movzx ecx, byte [ecx]
sub edx, ecx
imul edx, esi
shl ecx, 4
add edx, ecx
mov ecx, dword [esp + 0x28]
movzx edi, byte [ecx]
mov ecx, dword [esp + 0x74]
movzx ecx, byte [ecx]
sub ecx, edi
sar edx, 2
imul ecx, esi
shl edi, 4
add ecx, edi
sar ecx, 2
sub ecx, edx
shl edx, 4
imul ecx, ebp
add ecx, edx
mov edx, dword [esp + 0x20]
movzx edi, byte [edx]
mov edx, dword [esp + 0x5c]
movzx edx, byte [edx]
sub edx, edi
imul edx, esi
shl edi, 4
add edx, edi
sar edx, 2
mov dword [esp + 0x1c], edx
mov edx, dword [esp + 0x2c]
movzx edi, byte [edx]
mov edx, dword [esp + 0x48]
movzx edx, byte [edx]
sub edx, edi
imul edx, esi
shl edi, 4
add edx, edi
mov edi, dword [esp + 0x1c]
sar edx, 2
sub edx, edi
imul edx, ebp
shl edi, 4
add edx, edi
sar ecx, 4
sar edx, 4
sar eax, 4
sub edx, ecx
imul edx, dword [esp + 0x38]
shl ecx, 4
add edx, ecx
mov ecx, dword [esp + 0x94]
mov edi, dword [esp + 0x100]
sar edx, 4
sub edx, eax
imul edx, dword [esp + 0x3c]
shl eax, 4
add edx, eax
sar edx, cl
mov eax, dword [esp + 0x10c]
mov ecx, dword [esp + 0x10]
inc eax
inc edi
inc ecx
mov dword [esp + 0x10], ecx
inc dword [esp + 0x18]
inc dword [esp + 0x30]
inc dword [esp + 0x28]
mov ecx, dword [esp + 0x20]
movzx eax, byte [eax]
inc ecx
mov dword [esp + 0x20], ecx
inc dword [esp + 0x2c]
mov ecx, dword [esp + 0x54]
movzx ecx, byte [ecx + 1]
sub ecx, eax
movzx edi, byte [edi]
imul ecx, esi
shl eax, 4
add ecx, eax
mov eax, dword [esp + 0xbc]
movzx eax, byte [eax + 1]
sub eax, edi
sar ecx, 2
imul eax, esi
shl edi, 4
add eax, edi
sar eax, 2
sub eax, ecx
shl ecx, 4
imul eax, ebp
add eax, ecx
mov ecx, dword [esp + 0x10]
movzx edi, byte [ecx]
mov ecx, dword [esp + 0xd4]
movzx ecx, byte [ecx + 1]
sub ecx, edi
imul ecx, esi
shl edi, 4
add ecx, edi
sar ecx, 2
mov dword [esp + 0x1c], ecx
mov ecx, dword [esp + 0x18]
movzx edi, byte [ecx]
mov ecx, dword [esp + 0xe0]
movzx ecx, byte [ecx + 1]
sub ecx, edi
imul ecx, esi
shl edi, 4
add ecx, edi
mov edi, dword [esp + 0x1c]
sar ecx, 2
sub ecx, edi
imul ecx, ebp
shl edi, 4
add ecx, edi
sar eax, 4
sar ecx, 4
sub ecx, eax
imul ecx, dword [esp + 0x38]
mov dword [esp + 0x44], edx
shl eax, 4
add ecx, eax
mov eax, dword [esp + 0x30]
movzx edi, byte [eax]
mov eax, dword [esp + 0x70]
movzx eax, byte [eax + 1]
sub eax, edi
imul eax, esi
shl edi, 4
add eax, edi
sar eax, 2
mov dword [esp + 0x1c], eax
mov eax, dword [esp + 0x28]
movzx eax, byte [eax]
mov edi, dword [esp + 0x74]
movzx edi, byte [edi + 1]
sub edi, eax
shl eax, 4
imul edi, esi
add edi, eax
mov eax, dword [esp + 0x1c]
sar edi, 2
sub edi, eax
shl eax, 4
imul edi, ebp
add edi, eax
mov eax, dword [esp + 0x20]
movzx ebp, byte [eax]
mov eax, dword [esp + 0x5c]
movzx eax, byte [eax + 1]
sub eax, ebp
imul eax, esi
shl ebp, 4
add eax, ebp
sar eax, 2
mov dword [esp + 0x1c], eax
mov eax, dword [esp + 0x2c]
movzx ebp, byte [eax]
mov eax, dword [esp + 0x48]
movzx eax, byte [eax + 1]
sub eax, ebp
imul eax, esi
mov esi, dword [esp + 0x1c]
shl ebp, 4
add eax, ebp
sar eax, 2
sub eax, esi
imul eax, dword [esp + 0x78]
shl esi, 4
add eax, esi
sar eax, 4
sar edi, 4
sub eax, edi
imul eax, dword [esp + 0x38]
mov ebp, dword [esp + 0x90]
shl edi, 4
add eax, edi
sar ecx, 4
sar eax, 4
sub eax, ecx
imul eax, dword [esp + 0x3c]
shl ecx, 4
add eax, ecx
mov ecx, dword [esp + 0x94]
sar eax, cl
jmp 0x4ed3ae
mov ecx, dword [esp + 0x50]
movzx edx, byte [ecx]
mov eax, dword [esp + 0xc0]
mov ecx, dword [esp + 0xd0]
movzx ebx, byte [eax]
movzx eax, byte [ecx]
mov ecx, dword [esp + 0x14c]
mov edi, dword [ecx + edx*4]
mov ecx, dword [esp + 0x154]
mov ecx, dword [ecx + ebx*4]
cmp edi, ecx
mov esi, dword [esp + 0x170]
mov esi, dword [esi + eax*4]
mov dword [esp + 0x3c], edi
mov dword [esp + 0x38], ecx
jne 0x4ed111
cmp ecx, esi
jne 0x4ed111
mov ecx, dword [esp + 0xc8]
mov ecx, dword [ecx + eax*4]
mov eax, dword [esp + 0xd8]
mov esi, dword [eax + ebx*4]
mov eax, dword [esp + 0xcc]
mov ebx, dword [esp + 0x178]
add ecx, esi
mov esi, dword [eax + edx*4]
mov eax, dword [esp + 0xc4]
mov eax, dword [eax + edx*4]
add eax, ecx
add esi, ecx
movzx ecx, byte [esi]
add eax, ebx
movzx ebx, byte [eax]
movzx edx, byte [eax + 1]
sub ebx, ecx
imul ebx, edi
mov edi, dword [esp + 0x180]
shl ecx, 5
add ebx, ecx
mov ecx, edi
sar ebx, cl
movzx ecx, byte [esi + 1]
inc esi
inc eax
movzx eax, byte [eax + 1]
sub edx, ecx
imul edx, dword [esp + 0x3c]
shl ecx, 5
add edx, ecx
mov ecx, edi
sar edx, cl
movzx ecx, byte [esi + 1]
sub eax, ecx
imul eax, dword [esp + 0x3c]
shl ecx, 5
add eax, ecx
mov ecx, edi
sar eax, cl
jmp 0x4ed3aa
mov ecx, dword [esp + 0xc8]
mov eax, dword [ecx + eax*4]
mov ecx, dword [esp + 0xd8]
mov edi, dword [ecx + ebx*4]
mov ecx, dword [esp + 0xcc]
mov ebp, dword [ecx + edx*4]
mov ecx, dword [esp + 0x17c]
add eax, edi
add ebp, eax
lea edi, [ecx + ebp]
mov dword [esp + 0x1c], edi
mov edi, dword [esp + 0x88]
add edi, ebp
lea ebx, [edi + ecx]
mov dword [esp + 0x2c], ebx
mov ebx, dword [esp + 0xc4]
mov edx, dword [ebx + edx*4]
add edx, eax
lea eax, [edx + ecx]
mov dword [esp + 0x28], eax
mov eax, dword [esp + 0x88]
lea ebx, [edx + eax]
add ecx, ebx
movzx eax, byte [ebp]
mov dword [esp + 0x30], ecx
mov ecx, dword [esp + 0x1c]
movzx ecx, byte [ecx]
sub ecx, eax
imul ecx, esi
shl eax, 5
add ecx, eax
mov eax, dword [esp + 0x2c]
movzx eax, byte [eax]
mov dword [esp + 0x18], edi
movzx edi, byte [edi]
sub eax, edi
imul eax, esi
sar ecx, 3
shl edi, 5
add eax, edi
movzx edi, byte [edx]
sar eax, 3
sub eax, ecx
imul eax, dword [esp + 0x38]
shl ecx, 5
add eax, ecx
mov ecx, dword [esp + 0x28]
movzx ecx, byte [ecx]
sub ecx, edi
imul ecx, esi
mov dword [esp + 0x20], ebx
shl edi, 5
add ecx, edi
movzx edi, byte [ebx]
mov ebx, dword [esp + 0x30]
movzx ebx, byte [ebx]
sub ebx, edi
imul ebx, esi
shl edi, 5
add ebx, edi
sar ebx, 3
sar ecx, 3
sub ebx, ecx
imul ebx, dword [esp + 0x38]
mov edi, dword [esp + 0x18]
shl ecx, 5
add ebx, ecx
mov ecx, dword [esp + 0x94]
sar ebx, 5
sar eax, 5
sub ebx, eax
imul ebx, dword [esp + 0x3c]
shl eax, 5
add ebx, eax
sar ebx, cl
mov ecx, dword [esp + 0x1c]
inc ebp
inc ecx
inc edi
mov dword [esp + 0x1c], ecx
mov dword [esp + 0x18], edi
mov eax, dword [esp + 0x2c]
inc eax
movzx ecx, byte [ecx]
mov dword [esp + 0x2c], eax
mov eax, dword [esp + 0x28]
inc edx
inc eax
mov dword [esp + 0x28], eax
inc dword [esp + 0x20]
inc dword [esp + 0x30]
movzx eax, byte [ebp]
sub ecx, eax
movzx edi, byte [edi]
imul ecx, esi
shl eax, 5
add ecx, eax
mov eax, dword [esp + 0x2c]
movzx eax, byte [eax]
sub eax, edi
imul eax, esi
sar ecx, 3
shl edi, 5
add eax, edi
sar eax, 3
sub eax, ecx
imul eax, dword [esp + 0x38]
shl ecx, 5
add eax, ecx
mov ecx, dword [esp + 0x28]
movzx ecx, byte [ecx]
mov dword [esp + 0x10], edx
movzx edx, byte [edx]
sub ecx, edx
imul ecx, esi
shl edx, 5
add ecx, edx
mov edx, dword [esp + 0x20]
movzx edi, byte [edx]
mov edx, dword [esp + 0x30]
movzx edx, byte [edx]
sub edx, edi
imul edx, esi
sar ecx, 3
shl edi, 5
add edx, edi
sar edx, 3
sub edx, ecx
imul edx, dword [esp + 0x38]
mov edi, dword [esp + 0x18]
shl ecx, 5
add edx, ecx
mov ecx, dword [esp + 0x94]
sar eax, 5
sar edx, 5
sub edx, eax
imul edx, dword [esp + 0x3c]
shl eax, 5
add edx, eax
mov eax, dword [esp + 0x20]
sar edx, cl
mov ecx, dword [esp + 0x10]
inc ebp
inc edi
inc ecx
inc eax
mov dword [esp + 0x20], eax
mov eax, dword [esp + 0x1c]
movzx eax, byte [eax + 1]
mov dword [esp + 0x10], ecx
movzx ecx, byte [ebp]
movzx ebp, byte [edi]
sub eax, ecx
imul eax, esi
shl ecx, 5
add eax, ecx
mov dword [esp + 0x44], edx
sar eax, 3
mov ecx, dword [esp + 0x2c]
movzx ecx, byte [ecx + 1]
sub ecx, ebp
imul ecx, esi
mov edi, dword [esp + 0x28]
movzx edi, byte [edi + 1]
shl ebp, 5
add ecx, ebp
sar ecx, 3
sub ecx, eax
imul ecx, dword [esp + 0x38]
shl eax, 5
add ecx, eax
mov eax, dword [esp + 0x10]
movzx eax, byte [eax]
sub edi, eax
shl eax, 5
imul edi, esi
add edi, eax
mov eax, dword [esp + 0x20]
movzx ebp, byte [eax]
mov eax, dword [esp + 0x30]
movzx eax, byte [eax + 1]
sub eax, ebp
imul eax, esi
shl ebp, 5
add eax, ebp
sar eax, 3
sar edi, 3
sub eax, edi
imul eax, dword [esp + 0x38]
mov ebp, dword [esp + 0x90]
shl edi, 5
add eax, edi
sar ecx, 5
sar eax, 5
sub eax, ecx
imul eax, dword [esp + 0x3c]
shl ecx, 5
add eax, ecx
mov ecx, dword [esp + 0x94]
sar eax, cl
jmp 0x4ed3ae
mov ecx, dword [esp + 0x50]
mov edx, dword [esp + 0xc0]
mov eax, dword [esp + 0xd0]
movzx ebx, byte [ecx]
movzx edx, byte [edx]
movzx eax, byte [eax]
mov dword [esp + 0x44], edx
mov ecx, dword [esp + 0x2b8]
test ecx, ecx
mov dword [esp + 0x10], eax
je 0x4ed4da
mov esi, dword [ecx + 0x6c]
mov ebx, dword [esi + ebx*4]
mov esi, dword [ecx + 0x70]
mov edx, dword [esi + edx*4]
mov esi, dword [ecx + 0x74]
mov eax, dword [esi + eax*4]
mov esi, dword [ecx + 0x94]
test esi, esi
mov dword [esp + 0x44], edx
mov dword [esp + 0x10], eax
je 0x4ed4da
lea esp, [esp]
mov ecx, dword [esi + 0x58]
mov edi, dword [esi + 0x4c]
imul ecx, eax
imul edi, edx
add ecx, edi
mov edi, dword [esi + 0x40]
imul edi, ebx
add ecx, edi
mov edi, dword [esi + 0x50]
mov dword [esp + 0x78], ecx
imul edi, edx
mov ecx, dword [esi + 0x5c]
imul ecx, eax
add ecx, edi
mov edi, dword [esi + 0x44]
imul edi, ebx
add ecx, edi
mov edi, dword [esi + 0x54]
mov dword [esp + 0x10c], ecx
imul edi, eax
mov ecx, dword [esi + 0x48]
mov eax, dword [esp + 0x78]
imul ecx, edx
mov edx, dword [esi + 0x3c]
imul edx, ebx
mov ebx, dword [esi + 0x88]
add edi, ecx
mov ecx, dword [esi + 0x84]
add edi, edx
sub edi, ecx
mov ecx, dword [esi + 0x78]
sar edi, cl
mov ecx, dword [esi + 0x7c]
sub eax, ebx
sar eax, cl
mov ecx, dword [esi + 0x8c]
mov edx, eax
mov eax, dword [esp + 0x10c]
sub eax, ecx
mov ecx, dword [esi + 0x80]
sar eax, cl
test edi, edi
jge 0x4ed47c
xor edi, edi
jmp 0x4ed489
cmp edi, 0x3fc
jle 0x4ed489
mov edi, 0x3fc
test edx, edx
jge 0x4ed491
xor edx, edx
jmp 0x4ed49e
cmp edx, 0x3fc
jle 0x4ed49e
mov edx, 0x3fc
test eax, eax
jge 0x4ed4a6
xor eax, eax
jmp 0x4ed4b2
cmp eax, 0x3fc
jle 0x4ed4b2
mov eax, 0x3fc
mov ecx, dword [esi + 0x6c]
mov ebx, dword [ecx + edi*4]
mov ecx, dword [esi + 0x70]
mov edx, dword [ecx + edx*4]
mov ecx, dword [esi + 0x74]
mov esi, dword [esi + 0x94]
test esi, esi
mov eax, dword [ecx + eax*4]
jne 0x4ed3f0
mov dword [esp + 0x10], eax
mov dword [esp + 0x44], edx
mov ecx, dword [esp + 0x174]
test ecx, ecx
je 0x4ee047
mov ecx, dword [esp + 0x60]
mov esi, dword [esp + 0x13c]
cmp ecx, 3
mov ecx, dword [esp + 0x148]
mov ecx, dword [ecx + ebx*4]
mov dword [esp + 0x3c], ecx
jne 0x4ed832
mov edi, dword [esi + edx*4]
cmp ecx, edi
mov esi, dword [esp + 0x150]
mov esi, dword [esi + eax*4]
mov dword [esp + 0x38], edi
jne 0x4ed5be
cmp edi, esi
jne 0x4ed5be
mov ecx, dword [esp + 0xf0]
mov eax, dword [ecx + eax*4]
mov ecx, dword [esp + 0xe8]
mov esi, dword [ecx + edx*4]
mov ecx, dword [esp + 0xec]
mov edx, dword [esp + 0xf8]
mov edi, dword [edx + ebx*4]
add eax, esi
mov esi, dword [ecx + ebx*4]
mov ebx, dword [esp + 0x15c]
movzx ecx, byte [edi + eax]
add esi, eax
add edi, eax
add esi, ebx
movzx ebx, byte [esi]
movzx eax, byte [esi + 1]
movzx edx, byte [edi + 1]
sub ebx, ecx
imul ebx, dword [esp + 0x3c]
shl ecx, 5
add ebx, ecx
mov ecx, dword [esp + 0x158]
sar ebx, cl
inc edi
inc esi
movzx esi, byte [esi + 1]
sub eax, edx
imul eax, dword [esp + 0x3c]
shl edx, 5
add eax, edx
sar eax, cl
mov edx, eax
movzx eax, byte [edi + 1]
sub esi, eax
imul esi, dword [esp + 0x3c]
shl eax, 5
add esi, eax
sar esi, cl
mov dword [esp + 0x44], edx
mov eax, esi
mov dword [esp + 0x10], eax
jmp 0x4edc43
mov ecx, dword [esp + 0xf0]
mov ecx, dword [ecx + eax*4]
mov eax, dword [esp + 0xe8]
add ecx, dword [eax + edx*4]
mov edx, dword [esp + 0xf8]
mov edx, dword [edx + ebx*4]
add edx, ecx
lea eax, [edx + ebp]
mov dword [esp + 0x1c], eax
mov eax, dword [esp + 0xf4]
add eax, edx
mov dword [esp + 0x18], eax
add eax, ebp
mov dword [esp + 0x2c], eax
mov eax, dword [esp + 0xec]
mov ebx, dword [eax + ebx*4]
mov eax, dword [esp + 0xf4]
add ebx, ecx
add eax, ebx
lea ecx, [ebx + ebp]
mov dword [esp + 0x28], ecx
mov ecx, dword [esp + 0x1c]
movzx ecx, byte [ecx]
mov dword [esp + 0x20], eax
add eax, ebp
mov dword [esp + 0x30], eax
movzx eax, byte [edx]
sub ecx, eax
imul ecx, esi
shl eax, 5
add ecx, eax
mov eax, dword [esp + 0x18]
movzx ebp, byte [eax]
mov eax, dword [esp + 0x2c]
movzx eax, byte [eax]
sub eax, ebp
imul eax, esi
shl ebp, 5
add eax, ebp
sar ecx, 3
sar eax, 3
sub eax, ecx
imul eax, edi
shl ecx, 5
add eax, ecx
mov ecx, dword [esp + 0x28]
movzx ecx, byte [ecx]
mov ebp, dword [esp + 0x30]
movzx ebp, byte [ebp]
mov dword [esp + 0x10], ebx
movzx ebx, byte [ebx]
sub ecx, ebx
imul ecx, esi
shl ebx, 5
add ecx, ebx
mov ebx, dword [esp + 0x20]
movzx ebx, byte [ebx]
sub ebp, ebx
imul ebp, esi
shl ebx, 5
add ebp, ebx
sar ebp, 3
sar ecx, 3
sub ebp, ecx
imul ebp, edi
shl ecx, 5
add ebp, ecx
mov ecx, dword [esp + 0x7c]
sar ebp, 5
sar eax, 5
sub ebp, eax
imul ebp, dword [esp + 0x3c]
shl eax, 5
add ebp, eax
sar ebp, cl
mov ecx, dword [esp + 0x1c]
inc edx
inc ecx
mov ebx, ebp
mov dword [esp + 0x78], edx
mov dword [esp + 0x1c], ecx
mov ebp, dword [esp + 0x18]
mov eax, dword [esp + 0x2c]
movzx ecx, byte [ecx]
inc ebp
inc eax
mov dword [esp + 0x2c], eax
inc dword [esp + 0x10]
inc dword [esp + 0x28]
inc dword [esp + 0x20]
inc dword [esp + 0x30]
movzx eax, byte [edx]
sub ecx, eax
movzx edx, byte [ebp]
imul ecx, esi
shl eax, 5
add ecx, eax
mov eax, dword [esp + 0x2c]
movzx eax, byte [eax]
sub eax, edx
imul eax, esi
sar ecx, 3
shl edx, 5
add eax, edx
sar eax, 3
sub eax, ecx
imul eax, edi
shl ecx, 5
add eax, ecx
mov ecx, dword [esp + 0x10]
movzx edx, byte [ecx]
mov ecx, dword [esp + 0x28]
movzx ecx, byte [ecx]
sub ecx, edx
imul ecx, esi
mov dword [esp + 0x18], ebp
mov ebp, dword [esp + 0x30]
movzx ebp, byte [ebp]
shl edx, 5
add ecx, edx
mov edx, dword [esp + 0x20]
movzx edx, byte [edx]
sub ebp, edx
imul ebp, esi
sar ecx, 3
shl edx, 5
add ebp, edx
sar ebp, 3
sub ebp, ecx
imul ebp, edi
shl ecx, 5
add ebp, ecx
mov ecx, dword [esp + 0x7c]
sar ebp, 5
sar eax, 5
sub ebp, eax
imul ebp, dword [esp + 0x3c]
shl eax, 5
add ebp, eax
mov eax, dword [esp + 0x78]
sar ebp, cl
mov ecx, dword [esp + 0x10]
inc eax
movzx eax, byte [eax]
mov edx, ebp
mov ebp, dword [esp + 0x18]
inc ebp
inc ecx
mov dword [esp + 0x10], ecx
inc dword [esp + 0x20]
mov ecx, dword [esp + 0x1c]
mov dword [esp + 0x44], edx
movzx ecx, byte [ecx + 1]
movzx ebp, byte [ebp]
sub ecx, eax
imul ecx, esi
shl eax, 5
add ecx, eax
mov eax, dword [esp + 0x2c]
movzx eax, byte [eax + 1]
sub eax, ebp
imul eax, esi
shl ebp, 5
add eax, ebp
sar ecx, 3
sar eax, 3
sub eax, ecx
imul eax, edi
shl ecx, 5
add eax, ecx
mov ecx, dword [esp + 0x10]
movzx edi, byte [ecx]
mov ecx, dword [esp + 0x28]
movzx ecx, byte [ecx + 1]
mov ebp, dword [esp + 0x30]
movzx ebp, byte [ebp + 1]
sub ecx, edi
imul ecx, esi
shl edi, 5
add ecx, edi
mov edi, dword [esp + 0x20]
movzx edi, byte [edi]
sub ebp, edi
imul ebp, esi
shl edi, 5
add ebp, edi
sar ebp, 3
sar ecx, 3
sub ebp, ecx
imul ebp, dword [esp + 0x38]
shl ecx, 5
add ebp, ecx
mov ecx, dword [esp + 0x7c]
sar eax, 5
sar ebp, 5
sub ebp, eax
imul ebp, dword [esp + 0x3c]
shl eax, 5
add ebp, eax
sar ebp, cl
mov eax, ebp
mov dword [esp + 0x10], eax
jmp 0x4edc3c
mov esi, dword [esi + edx*4]
cmp ecx, esi
mov edi, dword [esp + 0x150]
mov edi, dword [edi + eax*4]
mov dword [esp + 0x38], esi
jne 0x4ed8ff
cmp esi, edi
jne 0x4ed8ff
mov esi, dword [esp + 0xf0]
mov eax, dword [esi + eax*4]
mov esi, dword [esp + 0xe8]
mov edi, dword [esi + edx*4]
mov edx, dword [esp + 0xf8]
add eax, edi
mov edi, dword [edx + ebx*4]
mov edx, dword [esp + 0xec]
mov edx, dword [edx + ebx*4]
mov ebx, dword [esp + 0x15c]
add edi, eax
add edx, eax
movzx eax, byte [edi]
add edx, ebx
movzx ebx, byte [edx]
movzx esi, byte [edx + 1]
sub ebx, eax
imul ebx, ecx
mov ecx, dword [esp + 0x158]
shl eax, 5
add ebx, eax
movzx eax, byte [edi + 1]
sub esi, eax
imul esi, dword [esp + 0x3c]
sar ebx, cl
inc edi
inc edx
shl eax, 5
add esi, eax
movzx eax, byte [edi + 1]
sar esi, cl
inc edi
inc edx
mov dword [esp + 0x44], esi
movzx esi, byte [edx]
sub esi, eax
imul esi, dword [esp + 0x3c]
shl eax, 5
add esi, eax
sar esi, cl
mov eax, esi
movzx esi, byte [edi + 1]
movzx edi, byte [edx + 1]
mov edx, dword [esp + 0x44]
sub edi, esi
imul edi, dword [esp + 0x3c]
shl esi, 5
add edi, esi
sar edi, cl
mov dword [esp + 0x10], eax
mov dword [esp + 0x24], edi
jmp 0x4edc43
mov ecx, dword [esp + 0xf0]
mov ecx, dword [ecx + eax*4]
mov eax, dword [esp + 0xe8]
mov esi, dword [eax + edx*4]
mov edx, dword [esp + 0xf8]
mov edx, dword [edx + ebx*4]
add ecx, esi
add edx, ecx
lea eax, [edx + ebp]
mov dword [esp + 0x1c], eax
mov eax, dword [esp + 0xf4]
add eax, edx
lea esi, [eax + ebp]
mov dword [esp + 0x2c], esi
mov esi, dword [esp + 0xec]
mov esi, dword [esi + ebx*4]
add esi, ecx
lea ecx, [esi + ebp]
mov dword [esp + 0x28], ecx
mov ecx, dword [esp + 0xf4]
lea ebx, [esi + ecx]
lea ecx, [ebx + ebp]
movzx ebp, byte [edx]
mov dword [esp + 0x30], ecx
mov ecx, dword [esp + 0x1c]
movzx ecx, byte [ecx]
sub ecx, ebp
imul ecx, edi
shl ebp, 5
add ecx, ebp
movzx ebp, byte [eax]
mov dword [esp + 0x18], eax
mov eax, dword [esp + 0x2c]
movzx eax, byte [eax]
sub eax, ebp
shl ebp, 5
imul eax, edi
add eax, ebp
movzx ebp, byte [esi]
sar ecx, 3
sar eax, 3
sub eax, ecx
imul eax, dword [esp + 0x38]
shl ecx, 5
add eax, ecx
mov ecx, dword [esp + 0x28]
movzx ecx, byte [ecx]
sub ecx, ebp
shl ebp, 5
imul ecx, edi
add ecx, ebp
mov ebp, dword [esp + 0x30]
movzx ebp, byte [ebp]
mov dword [esp + 0x20], ebx
movzx ebx, byte [ebx]
sub ebp, ebx
imul ebp, edi
shl ebx, 5
add ebp, ebx
sar ebp, 3
sar ecx, 3
sub ebp, ecx
imul ebp, dword [esp + 0x38]
shl ecx, 5
add ebp, ecx
mov ecx, dword [esp + 0x7c]
sar ebp, 5
sar eax, 5
sub ebp, eax
imul ebp, dword [esp + 0x3c]
shl eax, 5
add ebp, eax
sar ebp, cl
mov ecx, dword [esp + 0x1c]
inc edx
inc ecx
mov ebx, ebp
mov ebp, dword [esp + 0x18]
inc ebp
mov dword [esp + 0x1c], ecx
mov dword [esp + 0x18], ebp
mov eax, dword [esp + 0x2c]
movzx ecx, byte [ecx]
inc eax
mov dword [esp + 0x2c], eax
mov eax, dword [esp + 0x28]
movzx ebp, byte [ebp]
inc esi
inc eax
mov dword [esp + 0x28], eax
inc dword [esp + 0x20]
inc dword [esp + 0x30]
movzx eax, byte [edx]
sub ecx, eax
imul ecx, edi
shl eax, 5
add ecx, eax
mov eax, dword [esp + 0x2c]
movzx eax, byte [eax]
sub eax, ebp
imul eax, edi
shl ebp, 5
add eax, ebp
sar ecx, 3
movzx ebp, byte [esi]
sar eax, 3
sub eax, ecx
imul eax, dword [esp + 0x38]
shl ecx, 5
add eax, ecx
mov ecx, dword [esp + 0x28]
movzx ecx, byte [ecx]
sub ecx, ebp
imul ecx, edi
shl ebp, 5
add ecx, ebp
mov ebp, dword [esp + 0x30]
movzx ebp, byte [ebp]
sar ecx, 3
mov dword [esp + 0x48], ecx
mov ecx, dword [esp + 0x20]
movzx ecx, byte [ecx]
sub ebp, ecx
imul ebp, edi
shl ecx, 5
add ebp, ecx
mov ecx, dword [esp + 0x48]
sar ebp, 3
sub ebp, ecx
imul ebp, dword [esp + 0x38]
shl ecx, 5
add ebp, ecx
mov ecx, dword [esp + 0x7c]
sar eax, 5
sar ebp, 5
sub ebp, eax
imul ebp, dword [esp + 0x3c]
shl eax, 5
add ebp, eax
mov eax, dword [esp + 0x2c]
sar ebp, cl
mov ecx, dword [esp + 0x1c]
inc edx
inc ecx
mov dword [esp + 0x44], ebp
mov ebp, dword [esp + 0x18]
inc ebp
inc eax
mov dword [esp + 0x2c], eax
mov eax, dword [esp + 0x28]
inc esi
inc eax
mov dword [esp + 0x28], eax
mov eax, dword [esp + 0x20]
inc eax
mov dword [esp + 0x1c], ecx
mov dword [esp + 0x18], ebp
mov dword [esp + 0x20], eax
movzx ecx, byte [ecx]
mov eax, dword [esp + 0x30]
movzx ebp, byte [ebp]
inc eax
mov dword [esp + 0x30], eax
movzx eax, byte [edx]
sub ecx, eax
imul ecx, edi
shl eax, 5
add ecx, eax
mov eax, dword [esp + 0x2c]
movzx eax, byte [eax]
sub eax, ebp
sar ecx, 3
imul eax, edi
shl ebp, 5
add eax, ebp
movzx ebp, byte [esi]
sar eax, 3
sub eax, ecx
imul eax, dword [esp + 0x38]
shl ecx, 5
add eax, ecx
mov ecx, dword [esp + 0x28]
movzx ecx, byte [ecx]
sub ecx, ebp
imul ecx, edi
shl ebp, 5
add ecx, ebp
mov ebp, dword [esp + 0x30]
movzx ebp, byte [ebp]
sar ecx, 3
mov dword [esp + 0x48], ecx
mov ecx, dword [esp + 0x20]
movzx ecx, byte [ecx]
sub ebp, ecx
imul ebp, edi
shl ecx, 5
add ebp, ecx
mov ecx, dword [esp + 0x48]
sar ebp, 3
sub ebp, ecx
imul ebp, dword [esp + 0x38]
shl ecx, 5
add ebp, ecx
mov ecx, dword [esp + 0x7c]
sar ebp, 5
sar eax, 5
sub ebp, eax
imul ebp, dword [esp + 0x3c]
shl eax, 5
add ebp, eax
sar ebp, cl
mov ecx, dword [esp + 0x20]
inc edx
mov eax, ebp
mov ebp, dword [esp + 0x18]
inc ebp
movzx ebp, byte [ebp]
inc esi
inc ecx
mov dword [esp + 0x20], ecx
movzx ecx, byte [edx]
mov edx, dword [esp + 0x1c]
movzx edx, byte [edx + 1]
sub edx, ecx
imul edx, edi
shl ecx, 5
add edx, ecx
mov ecx, dword [esp + 0x2c]
movzx ecx, byte [ecx + 1]
sub ecx, ebp
imul ecx, edi
shl ebp, 5
add ecx, ebp
sar ecx, 3
sar edx, 3
sub ecx, edx
imul ecx, dword [esp + 0x38]
mov dword [esp + 0x10], eax
shl edx, 5
movzx esi, byte [esi]
add ecx, edx
mov edx, dword [esp + 0x28]
movzx edx, byte [edx + 1]
sub edx, esi
shl esi, 5
imul edx, edi
add edx, esi
mov esi, dword [esp + 0x20]
movzx ebp, byte [esi]
mov esi, dword [esp + 0x30]
movzx esi, byte [esi + 1]
sub esi, ebp
imul esi, edi
shl ebp, 5
add esi, ebp
sar esi, 3
sar edx, 3
sub esi, edx
imul esi, dword [esp + 0x38]
shl edx, 5
add esi, edx
mov edx, dword [esp + 0x44]
sar ecx, 5
sar esi, 5
sub esi, ecx
imul esi, dword [esp + 0x3c]
shl ecx, 5
add esi, ecx
mov ecx, dword [esp + 0x7c]
sar esi, cl
mov dword [esp + 0x24], esi
mov ebp, dword [esp + 0x90]
mov ecx, dword [esp + 0x98]
test ecx, ecx
je 0x4edcfd
cmp dword [esp + 0x60], 3
je case.0x4ee057.1
mov esi, dword [esp + 0x24]
mov ecx, dword [esp + 0x8c]
test ecx, ecx
je 0x4edce0
mov ecx, dword [esp + 0x160]
test ecx, ecx
je 0x4edc87
sub ecx, ebx
movzx ecx, byte [ecx + 0xff]
mov ebx, 0xff
sub ebx, ecx
mov ecx, dword [esp + 0x168]
test ecx, ecx
je 0x4edca4
sub ecx, edx
movzx edx, byte [ecx + 0xff]
mov ecx, 0xff
sub ecx, edx
mov edx, ecx
mov ecx, dword [esp + 0x164]
test ecx, ecx
je 0x4edcc1
sub ecx, eax
movzx eax, byte [ecx + 0xff]
mov ecx, 0xff
sub ecx, eax
mov eax, ecx
mov ecx, dword [esp + 0x108]
test ecx, ecx
je 0x4edce0
sub ecx, esi
movzx ecx, byte [ecx + 0xff]
mov esi, 0xff
sub esi, ecx
mov dword [esp + 0x24], esi
mov ecx, dword [esp + 0x58]
mov byte [ecx], bl
inc ecx
mov byte [ecx], dl
mov dl, byte [esp + 0x24]
inc ecx
mov byte [ecx], al
inc ecx
mov byte [ecx], dl
inc ecx
mov dword [esp + 0x58], ecx
jmp case.default.0x4edd0d
mov eax, dword [esp + 0x2c0]
cmp eax, 5
ja case.default.0x4edd0d
jmp dword [eax*4 + 0x4ee2c0]
mov eax, dword [esp + 0x60]
imul ebx, dword [0x6bf1a0]
mov ecx, dword [esp + 0x44]
imul ecx, dword [0x6bed48]
cmp eax, 3
mov eax, dword [esp + 0x10]
jne 0x4edd63
imul eax, dword [0x6bee60]
add eax, ecx
lea ebx, [eax + ebx + 0x800000]
shr ebx, 0x18
cmp ebx, 0xff
jle 0x4edd53
mov ebx, 0xff
mov eax, dword [esp + 0x58]
mov byte [eax], bl
inc eax
mov dword [esp + 0x58], eax
jmp case.default.0x4edd0d
imul eax, dword [0x6bee60]
add eax, ecx
lea eax, [eax + ebx + 0x800000]
shr eax, 0x18
mov ebx, 0xff
sub ebx, eax
sub ebx, dword [esp + 0x24]
jns 0x4edd46
mov eax, dword [esp + 0x58]
xor ebx, ebx
mov byte [eax], bl
inc eax
mov dword [esp + 0x58], eax
jmp case.default.0x4edd0d
cmp dword [esp + 0x60], 4
jne 0x4ee06e
mov esi, dword [esp + 0x24]
mov eax, 0xff
sub eax, esi
mov ecx, eax
sub ecx, ebx
mov dword [esp + 0x24], eax
mov ebx, ecx
jns 0x4eddb9
xor ebx, ebx
mov ecx, dword [esp + 0x44]
mov edx, eax
sub edx, ecx
jns 0x4eddc5
xor edx, edx
sub eax, dword [esp + 0x10]
jns case.0x4ee057.1
mov ecx, dword [esp + 0x58]
mov byte [ecx], bl
xor eax, eax
inc ecx
mov byte [ecx], dl
inc ecx
mov byte [ecx], al
inc ecx
mov dword [esp + 0x58], ecx
jmp case.default.0x4edd0d
mov eax, dword [esp + 0x8c]
test eax, eax
je 0x4edefe
mov eax, dword [esp + 0xe4]
mov ecx, dword [eax + 0x20]
test ecx, ecx
je 0x4edefe
mov eax, dword [esp + 0x60]
xor esi, esi
test eax, eax
jle 0x4edefe
mov edi, dword [esp + 0x2ac]
lea ecx, [ecx]
test esi, esi
mov eax, dword [edi + esi*4 + 0x13c]
mov ecx, dword [edi + esi*4 + 0x14c]
jne 0x4ede38
mov dword [esp + 0x54], ebx
jmp 0x4ede54
cmp esi, 1
jne 0x4ede43
mov edx, dword [esp + 0x44]
jmp 0x4ede50
cmp esi, 2
mov edx, dword [esp + 0x10]
je 0x4ede50
mov edx, dword [esp + 0x24]
mov dword [esp + 0x54], edx
fild dword [esp + 0x54]
push ecx
lea ecx, [esp + 0x100]
push ecx
fstp dword [esp + 0x80]
fld dword [esp + 0x80]
fdiv dword [0x66cb38]
fstp dword [esp + 0x104]
call eax
fld dword [esp + 0x104]
fcomp dword [0x66cb3c]
add esp, 8
fnstsw ax
test ah, 0x41
jp 0x4ede99
xor eax, eax
jmp 0x4edecf
fld dword [esp + 0xfc]
fcomp dword [0x671614]
fnstsw ax
test ah, 1
jne 0x4edeb4
mov eax, 0xff
jmp 0x4edecf
fld dword [esp + 0xfc]
fmul dword [0x66cb38]
fadd dword [0x66d5e0]
call fcn.00667ad0
movzx eax, al
test esi, esi
jne 0x4eded7
mov ebx, eax
jmp 0x4edef1
cmp esi, 1
jne 0x4edee2
mov dword [esp + 0x44], eax
jmp 0x4edef1
cmp esi, 2
jne 0x4edeed
mov dword [esp + 0x10], eax
jmp 0x4edef1
mov dword [esp + 0x24], eax
mov eax, dword [esp + 0x60]
inc esi
cmp esi, eax
jl 0x4ede20
cmp dword [esp + 0x60], 3
je case.0x4ee057.4
mov eax, dword [esp + 0x10]
mov edx, dword [esp + 0x44]
jmp 0x4edc5d
push 0
call fcn.0044b1f0
add esp, 4
push 0
call fcn.0044b1f0
add esp, 4
mov eax, dword [esp + 0x140]
mov edx, dword [esp + 0x118]
mov ecx, dword [esp + 0x68]
inc eax
inc edx
cmp eax, ecx
mov dword [esp + 0x140], eax
mov dword [esp + 0x118], edx
jle 0x4ec940
mov eax, dword [esp + 0x4c]
mov edx, dword [esp + 0xd0]
inc eax
inc edx
cmp eax, 0x10
mov dword [esp + 0x4c], eax
mov dword [esp + 0xd0], edx
jle 0x4ec910
mov eax, dword [esp + 0x84]
mov edx, dword [esp + 0xc0]
inc eax
inc edx
cmp eax, 0x10
mov dword [esp + 0x84], eax
mov dword [esp + 0xc0], edx
jle 0x4ec8d0
mov eax, dword [esp + 0x34]
mov edx, dword [esp + 0x50]
inc eax
inc edx
cmp eax, 0x10
mov dword [esp + 0x34], eax
mov dword [esp + 0x50], edx
jle 0x4ec890
mov edx, dword [esp + 0x40]
mov eax, dword [0x6bf274]
mov ecx, dword [eax]
push edx
push eax
call dword [ecx + 8]
mov edx, dword [esp + 0x10c]
mov eax, dword [0x6bf274]
mov ecx, dword [eax]
push edx
push eax
call dword [ecx + 8]
mov edx, dword [esp + 0x24]
mov eax, dword [0x6bf274]
mov ecx, dword [eax]
push edx
push eax
call dword [ecx + 8]
mov edx, dword [esp + 0x84]
mov eax, dword [0x6bf274]
mov ecx, dword [eax]
push edx
push eax
call dword [ecx + 8]
mov ecx, dword [esp + 0xac]
add esp, 0x20
test ecx, ecx
pop edi
pop esi
pop ebp
pop ebx
je 0x4ee2a4
mov edx, dword [esp + 0x54]
test edx, edx
mov eax, 0x1331
je 0x4ee256
mov eax, dword [esp + 0xd4]
mov edx, dword [eax + 0x160]
mov eax, dword [edx]
mov edx, dword [eax]
mov eax, dword [esp + 0xcc]
imul eax, eax, 0x1331
jmp 0x4ee265
mov ecx, dword [esp + 0x2c0]
cmp ecx, 4
ja case.0x4ee057.2
jmp dword [ecx*4 + 0x4ee2d8]
mov eax, dword [esp + 0x58]
mov byte [eax], bl
inc eax
mov dword [esp + 0x58], eax
jmp case.default.0x4edd0d
mov eax, dword [esp + 0x10]
mov edx, dword [esp + 0x44]
mov ecx, dword [esp + 0x58]
mov byte [ecx], bl
inc ecx
mov byte [ecx], dl
inc ecx
mov byte [ecx], al
inc ecx
mov dword [esp + 0x58], ecx
jmp case.default.0x4edd0d
mov eax, dword [esp + 0x8c]
test eax, eax
mov edx, dword [esp + 0x44]
je 0x4ee190
cmp ebx, edx
mov esi, ebx
jg 0x4ee0a7
mov esi, edx
mov eax, dword [esp + 0x10]
cmp eax, esi
mov dword [esp + 0x24], esi
jle 0x4ee0b9
mov esi, eax
mov dword [esp + 0x24], esi
mov ecx, dword [esp + 0x114]
mov eax, 0xff
sub eax, esi
test ecx, ecx
je 0x4ee0cf
movsx eax, word [ecx + eax*2]
mov edi, 0xff
sub edi, ebx
sub edi, eax
mov ebx, edi
mov edi, 0xff
sub edi, edx
sub edi, eax
mov edx, edi
mov edi, 0xff
sub edi, dword [esp + 0x10]
sub edi, eax
test ecx, ecx
mov eax, edi
je 0x4ee134
test ebx, ebx
jge 0x4ee0fe
xor ebx, ebx
jmp 0x4ee10b
cmp ebx, 0xff
jle 0x4ee10b
mov ebx, 0xff
test edx, edx
jge 0x4ee113
xor edx, edx
jmp 0x4ee120
cmp edx, 0xff
jle 0x4ee120
mov edx, 0xff
test eax, eax
jge 0x4ee128
xor eax, eax
jmp 0x4ee134
cmp eax, 0xff
jle 0x4ee134
mov eax, 0xff
mov ecx, dword [esp + 0x110]
test ecx, ecx
je 0x4ee17c
sub ecx, esi
movzx ecx, byte [ecx + 0xff]
test ecx, ecx
mov dword [esp + 0x24], ecx
jge 0x4ee16c
mov dword [esp + 0x24], 0
mov ecx, dword [esp + 0x24]
mov esi, 0xff
sub esi, ecx
mov dword [esp + 0x24], esi
jmp 0x4edc61
cmp ecx, 0xff
jle 0x4ee17c
mov dword [esp + 0x24], 0xff
mov ecx, dword [esp + 0x24]
mov esi, 0xff
sub esi, ecx
mov dword [esp + 0x24], esi
jmp 0x4edc61
cmp ebx, edx
mov dword [esp + 0x24], ebx
jg 0x4ee19c
mov dword [esp + 0x24], edx
mov eax, dword [esp + 0x10]
cmp eax, dword [esp + 0x24]
jle 0x4ee1aa
mov dword [esp + 0x24], eax
mov ecx, dword [esp + 0x24]
mov esi, 0xff
sub esi, ecx
mov ecx, dword [esp + 0x114]
test ecx, ecx
je 0x4ee1c4
movsx esi, word [ecx + esi*2]
add ebx, esi
add edx, esi
add eax, esi
test ecx, ecx
je 0x4ee20c
test ebx, ebx
jge 0x4ee1d6
xor ebx, ebx
jmp 0x4ee1e3
cmp ebx, 0xff
jle 0x4ee1e3
mov ebx, 0xff
test edx, edx
jge 0x4ee1eb
xor edx, edx
jmp 0x4ee1f8
cmp edx, 0xff
jle 0x4ee1f8
mov edx, 0xff
test eax, eax
jge 0x4ee200
xor eax, eax
jmp 0x4ee20c
cmp eax, 0xff
jle 0x4ee20c
mov eax, 0xff
mov ecx, dword [esp + 0x110]
test ecx, ecx
je 0x4edce0
sub ecx, dword [esp + 0x24]
movzx ecx, byte [ecx + 0xff]
test ecx, ecx
mov dword [esp + 0x24], ecx
jge 0x4ee23b
mov dword [esp + 0x24], 0
jmp 0x4edce0
cmp dword [esp + 0x24], 0xff
jle 0x4edce0
mov dword [esp + 0x24], 0xff
jmp 0x4edce0
mov edx, dword [esp + 0xd4]
mov edx, dword [edx + 0x15c]
mov edx, dword [edx]
push 0
mov dword [esp + 0x19c], edx
mov edx, dword [esp + 0x2bc]
push edx
mov edx, dword [esp + 0x2b8]
push 0
push 1
push 0xff
push 8
push edx
mov edx, dword [esp + 0x2bc]
mov edx, dword [edx + 4]
push edx
lea edx, [esp + 0x1b8]
push edx
push 1
push eax
call ecx
add esp, 0x2c
add esp, 0x298
ret