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

Disassembly:
sub esp, 0x68
mov eax, ecx
push ebx
mov dword [esp + 0x18], eax
push ebp
mov ecx, dword [eax + 0x48]
mov ebp, dword [eax + 0x3c]
mov ebx, dword [eax + 0x40]
push esi
mov esi, dword [eax + 0x44]
mov eax, dword [eax + 0x124]
push edi
mov dword [esp + 0x30], ecx
mov dword [esp + 0x28], esi
mov eax, dword [eax + 0x54]
mov dword [esp + 0x38], ebp
mov dword [esp + 0x3c], ebx
mov edx, dword [eax]
mov edi, dword [eax + 4]
mov eax, dword [eax + 0xc]
mov dword [esp + 0x48], eax
mov eax, ecx
mov dword [esp + 0x4c], edx
cdq
sub eax, edx
mov dword [esp + 0x1c], edi
mov ecx, eax
mov eax, esi
cdq
sub eax, edx
sar ecx, 1
mov esi, eax
sar esi, 1
cmp esi, ecx
jl 0x4de6e7
mov esi, ecx
mov ecx, dword [esp + 0x30]
mov eax, dword [esp + 0x28]
add eax, ebp
lea ecx, [ecx + ebx]
js 0x4e16bf
test ecx, ecx
js 0x4e16bf
cmp ebp, dword [esp + 0x4c]
jg 0x4e16bf
cmp ebx, edi
jg 0x4e16bf
mov eax, esi
cmp esi, 0xff
jle 0x4de723
mov eax, 0xff
mov edi, dword [esp + 0x24]
mov ecx, dword [edi + 0x6c]
cmp ecx, eax
jle 0x4de730
mov ecx, eax
push dword [edi + 0x70]
push ecx
mov ecx, dword [0x56c70c]
call fcn.004de5dd
mov dword [edi + 0xf4], eax
mov eax, esi
cmp esi, 0xff
jle 0x4de754
mov eax, 0xff
mov ecx, dword [edi + 0x74]
cmp ecx, eax
jle 0x4de75d
mov ecx, eax
push dword [edi + 0x78]
push ecx
mov ecx, dword [0x56c70c]
call fcn.004de5dd
mov dword [edi + 0xf8], eax
mov eax, esi
cmp esi, 0xff
jle 0x4de781
mov eax, 0xff
mov ecx, dword [edi + 0x7c]
cmp ecx, eax
jle 0x4de78a
mov ecx, eax
push dword [edi + 0x80]
push ecx
mov ecx, dword [0x56c70c]
call fcn.004de5dd
mov dword [edi + 0xfc], eax
cmp esi, 0xff
jle 0x4de7af
mov esi, 0xff
mov eax, dword [edi + 0x84]
cmp eax, esi
jle 0x4de7bb
mov eax, esi
mov ecx, dword [0x56c70c]
mov esi, edi
push dword [esi + 0x88]
push eax
call fcn.004de5dd
mov ecx, dword [esi + 0xf4]
mov edx, eax
mov dword [esi + 0x100], edx
mov byte [esp + 0x13], 0
movzx eax, byte [ecx]
mov ecx, dword [esi + 0xf8]
mov dword [esp + 0x64], eax
movzx edi, byte [ecx]
mov ecx, dword [esp + 0x28]
mov eax, ecx
sub eax, edi
mov dword [esp + 0x6c], edi
mov edi, dword [esp + 0x30]
dec eax
mov dword [esp + 0x68], eax
mov eax, dword [esi + 0xfc]
movzx eax, byte [eax]
mov dword [esp + 0x58], eax
mov eax, edi
sub eax, dword [esp + 0x58]
dec eax
mov dword [esp + 0x70], eax
movzx eax, byte [edx]
mov edx, dword [esi + 0x104]
sub ecx, eax
dec ecx
mov dword [esp + 0x34], edx
sub edi, eax
mov dword [esp + 0x74], ecx
mov eax, dword [esi + 0x108]
dec edi
mov ecx, eax
mov dword [esp + 0x5c], edi
shl ecx, 4
xor edi, edi
add ecx, eax
lea eax, [edx + ecx*4]
xor ecx, ecx
xor edx, edx
mov dword [esp + 0x40], eax
mov dword [esp + 0x2c], edx
cmp dword [esi + 0x90], ecx
jle 0x4deac3
mov ebp, esi
jmp 0x4de871
mov ecx, dword [esp + 0x44]
mov edx, dword [esp + 0x2c]
mov esi, eax
inc ecx
add eax, 0x44
mov dword [esp + 0x44], ecx
mov dword [esp + 0x20], eax
mov ecx, dword [esi + 0xc]
lea ebx, [esi + 0x34]
test edi, edi
je 0x4de8ff
mov eax, dword [edi + 0x34]
lea edx, [esi + 0x38]
add eax, ecx
add dword [esp + 0x2c], ecx
mov dword [ebx], eax
mov eax, dword [edi + 0x38]
add eax, ecx
mov dword [esp + 0x54], edx
mov dword [edx], eax
lea edx, [esi + 0x3c]
mov eax, dword [edi + 0x3c]
sub eax, ecx
mov dword [esp + 0x60], edx
mov dword [edx], eax
mov eax, dword [edi + 0x40]
sub eax, ecx
mov ecx, esi
mov dword [esi + 0x40], eax
push dword [edi + 0x40]
push dword [edi + 0x3c]
push dword [edi + 0x38]
push dword [edi + 0x34]
call fcn.004de229
cmp byte [esp + 0x13], 0
jne 0x4de8f2
cmp dword [esi + 0x10], 0
je 0x4de8f2
push dword [edi + 0x40]
mov ecx, dword [esp + 0x38]
push dword [edi + 0x3c]
push dword [edi + 0x38]
push dword [edi + 0x34]
call fcn.004de229
mov byte [esp + 0x13], 1
mov ecx, dword [esp + 0x60]
mov edx, dword [esp + 0x54]
jmp 0x4de985
mov eax, dword [esp + 0x28]
push dword [esp + 0x30]
sub eax, ecx
mov dword [ebx], ecx
push dword [esp + 0x2c]
mov dword [esi + 0x3c], eax
mov eax, dword [esp + 0x38]
sub eax, ecx
mov dword [esi + 0x38], ecx
mov dword [esi + 0x40], eax
lea eax, [ecx + edx]
push 0
push 0
mov ecx, esi
mov dword [esp + 0x60], ebx
mov dword [esp + 0x64], eax
call fcn.004de229
cmp byte [esp + 0x13], 0
lea ecx, [esi + 0x3c]
mov eax, dword [esp + 0x54]
lea edx, [esi + 0x38]
mov dword [esp + 0x2c], eax
jne 0x4de981
cmp dword [esi + 0x10], 0
lea ecx, [esi + 0x3c]
mov dword [esp + 0x2c], eax
lea edx, [esi + 0x38]
je 0x4de981
push dword [esp + 0x30]
mov ecx, dword [esp + 0x38]
push dword [esp + 0x2c]
push 0
push 0
call fcn.004de229
mov edx, dword [esp + 0x54]
lea ecx, [esi + 0x3c]
mov dword [esp + 0x2c], edx
lea edx, [esi + 0x38]
mov byte [esp + 0x13], 1
mov ebp, dword [esp + 0x24]
mov eax, dword [esp + 0x44]
mov edi, esi
cmp eax, dword [ebp + 0x90]
mov eax, dword [esp + 0x20]
jl 0x4de869
cmp byte [esp + 0x13], 0
mov edi, dword [esp + 0x34]
jne 0x4de9b6
push dword [esi + 0x40]
push dword [ecx]
mov ecx, edi
push dword [edx]
push dword [ebx]
call fcn.004de229
mov esi, dword [esp + 0x24]
mov ebp, dword [esp + 0x38]
mov ebx, dword [esp + 0x3c]
mov eax, dword [esp + 0x28]
mov edx, dword [esp + 0x4c]
add eax, ebp
cmp eax, edx
jle 0x4de9d8
mov eax, edx
sub eax, ebp
mov dword [esp + 0x28], eax
mov ecx, dword [esp + 0x30]
mov eax, dword [esp + 0x1c]
add ecx, ebx
cmp ecx, eax
jle 0x4de9ec
sub eax, ebx
mov dword [esp + 0x30], eax
xor ecx, ecx
mov eax, ebp
neg eax
test ebp, ebp
setns cl
xor edx, edx
dec ecx
and ecx, eax
test ebx, ebx
mov dword [esp + 0x60], ecx
sets dl
xor eax, eax
dec edx
and edx, ebx
imul edx, dword [esp + 0x4c]
test ebp, ebp
sets al
xor ecx, ecx
dec eax
and eax, ebp
add edx, eax
mov eax, ebx
neg eax
mov dword [esp + 0x38], edx
test ebx, ebx
setns cl
dec ecx
and ecx, eax
mov dword [esp + 0x18], ecx
cmp ecx, dword [esp + 0x30]
jge 0x4e16bf
mov eax, dword [esp + 0x60]
mov ebx, eax
mov dword [esp + 0x14], eax
cmp ebx, dword [esp + 0x28]
jge 0x4e169e
mov eax, dword [esi + 0x90]
mov ebp, edi
mov dword [esp + 0x54], eax
lea edi, [eax - 1]
mov ecx, edi
mov dword [esp + 0x50], edi
test ecx, ecx
js 0x4dea9d
mov edx, dword [esp + 0x40]
mov eax, ecx
mov edi, dword [esp + 0x18]
shl eax, 4
add eax, ecx
lea edx, [edx + eax*4]
nop
mov eax, edx
dec ecx
sub edx, 0x44
cmp ebx, dword [eax + 0x34]
jl 0x4dea93
cmp edi, dword [eax + 0x38]
jl 0x4dea93
cmp ebx, dword [eax + 0x3c]
jge 0x4dea93
cmp edi, dword [eax + 0x40]
jl 0x4dea99
mov ebp, eax
test ecx, ecx
jns 0x4dea79
mov edi, dword [esp + 0x50]
mov ecx, dword [esp + 0x64]
mov eax, dword [esp + 0x18]
cmp ebx, ecx
jge 0x4deadf
cmp eax, ecx
jge 0x4deadf
mov ebx, dword [esi + 0xf4]
movzx esi, byte [ebx]
mov edx, esi
sub edx, eax
sub esi, dword [esp + 0x14]
jmp 0x4deb4c
push dword [esp + 0x30]
mov edi, dword [esp + 0x38]
mov ecx, edi
push dword [esp + 0x2c]
push 0
push 0
call fcn.004de229
jmp 0x4de9c2
mov ecx, dword [esp + 0x68]
cmp ebx, ecx
jle 0x4deb01
mov edx, dword [esp + 0x6c]
cmp eax, edx
jge 0x4deb01
mov esi, ebx
sub edx, eax
sub esi, ecx
mov ecx, dword [esp + 0x24]
mov ebx, dword [ecx + 0xf8]
jmp 0x4deb4c
cmp ebx, dword [esp + 0x58]
jge 0x4deb22
mov ecx, dword [esp + 0x70]
cmp eax, ecx
jle 0x4deb22
mov ebx, dword [esi + 0xfc]
mov edx, eax
sub edx, ecx
movzx esi, byte [ebx]
sub esi, dword [esp + 0x14]
jmp 0x4deb4c
mov ecx, dword [esp + 0x74]
cmp ebx, ecx
jle 0x4e111a
cmp eax, dword [esp + 0x5c]
jle 0x4e111a
mov edx, eax
mov esi, ebx
sub edx, dword [esp + 0x5c]
sub esi, ecx
mov ecx, dword [esp + 0x24]
mov ebx, dword [ecx + 0x100]
dec edx
dec esi
test ebx, ebx
je 0x4e1112
cmp dword [ebx + 4], 2
jne 0x4df085
mov eax, dword [esp + 0x2c]
cmp edx, eax
jge 0x4deb77
movzx ecx, byte [ebx]
sub eax, edx
sub ecx, esi
cmp ecx, eax
jle 0x4debcb
mov eax, dword [esp + 0x2c]
cmp esi, eax
jge 0x4deb8a
movzx ecx, byte [ebx]
sub eax, esi
sub ecx, edx
cmp ecx, eax
jle 0x4debcb
mov eax, dword [esp + 0x2c]
cmp esi, edx
jg 0x4deb90
mov edx, esi
mov esi, dword [esp + 0x24]
xor ecx, ecx
xor ebp, ebp
xor ebx, ebx
cmp dword [esi + 0x90], ecx
jle 0x4e1677
mov esi, dword [esp + 0x40]
mov edi, esi
sub eax, ebx
inc ecx
add esi, 0x44
cmp edx, eax
jge 0x4debcb
mov eax, dword [esp + 0x24]
mov ebp, edi
mov ebx, dword [edi + 0x34]
cmp ecx, dword [eax + 0x90]
mov eax, dword [esp + 0x2c]
jl 0x4debaa
test ebp, ebp
je 0x4e1673
mov edx, dword [esp + 0x14]
mov edi, edx
mov ebx, dword [esp + 0x18]
sub edi, dword [ebp + 0x24]
sub ebx, dword [ebp + 0x28]
mov esi, dword [ebp]
mov dword [esp + 0x54], edi
mov dword [esp + 0x44], ebx
mov dword [esp + 0x20], 0
test esi, esi
jne 0x4dec05
mov dword [esp + 0x1c], esi
mov ecx, esi
jmp 0x4e1542
mov eax, dword [ebp + 0x20]
test eax, eax
jne 0x4dec17
mov ebx, dword [esi]
mov dword [esp + 0x20], ebx
jmp 0x4defab
cmp eax, 1
jne 0x4dec36
mov eax, dword [ebp + 4]
imul eax, ebx
cdq
idiv dword [ebp + 0x30]
mov edx, dword [esp + 0x14]
mov ebx, dword [esi + eax*4]
mov dword [esp + 0x20], ebx
jmp 0x4defab
cmp eax, 2
jne 0x4dec58
mov eax, dword [ebp + 0x30]
sub eax, ebx
imul eax, dword [ebp + 4]
cdq
idiv dword [ebp + 0x30]
mov edx, dword [esp + 0x14]
mov ebx, dword [esi + eax*4]
mov dword [esp + 0x20], ebx
jmp 0x4defab
cmp eax, 3
jne 0x4dec77
mov eax, dword [ebp + 4]
imul eax, edi
cdq
idiv dword [ebp + 0x2c]
mov edx, dword [esp + 0x14]
mov ebx, dword [esi + eax*4]
mov dword [esp + 0x20], ebx
jmp 0x4defab
cmp eax, 4
jne 0x4dec99
mov eax, dword [ebp + 0x2c]
sub eax, edi
imul eax, dword [ebp + 4]
cdq
idiv dword [ebp + 0x2c]
mov edx, dword [esp + 0x14]
mov ebx, dword [esi + eax*4]
mov dword [esp + 0x20], ebx
jmp 0x4defab
cmp eax, 5
jne 0x4decc1
imul edi, dword [ebp + 4]
imul ebx, dword [ebp + 4]
imul eax, edi, 0x3e8
cdq
idiv dword [ebp + 0x2c]
mov esi, eax
imul eax, ebx, 0x3e8
cdq
idiv dword [ebp + 0x30]
jmp 0x4dede9
cmp eax, 6
jne 0x4dece6
mov ecx, dword [ebp + 0x30]
lea eax, [edi + ebx]
imul eax, dword [ebp + 4]
add ecx, dword [ebp + 0x2c]
cdq
idiv ecx
mov edx, dword [esp + 0x14]
mov ebx, dword [esi + eax*4]
mov dword [esp + 0x20], ebx
jmp 0x4defab
cmp eax, 7
jne 0x4ded16
mov edx, dword [esp + 0x44]
imul edx, dword [ebp + 4]
mov ecx, dword [ebp + 0x2c]
sub ecx, dword [esp + 0x54]
imul ecx, dword [ebp + 4]
imul eax, edx, 0x3e8
cdq
idiv dword [ebp + 0x30]
mov edi, eax
imul eax, ecx, 0x3e8
cdq
idiv dword [ebp + 0x2c]
jmp 0x4ded69
cmp eax, 8
jne 0x4ded3f
mov edx, dword [ebp + 0x2c]
sub ebx, edi
mov ecx, dword [ebp + 0x30]
add ecx, edx
lea eax, [edx + ebx]
imul eax, dword [ebp + 4]
cdq
idiv ecx
mov edx, dword [esp + 0x14]
mov ebx, dword [esi + eax*4]
mov dword [esp + 0x20], ebx
jmp 0x4defab
cmp eax, 9
jne 0x4ded8f
imul edi, dword [ebp + 4]
mov ecx, dword [ebp + 0x30]
sub ecx, dword [esp + 0x44]
imul ecx, dword [ebp + 4]
imul eax, edi, 0x3e8
cdq
idiv dword [ebp + 0x2c]
mov edi, eax
imul eax, ecx, 0x3e8
cdq
idiv dword [ebp + 0x30]
mov ebx, dword [ebp]
add edi, eax
mov eax, 0x10624dd3
imul edi
sar edx, 7
mov eax, edx
shr eax, 0x1f
add eax, edx
mov edx, dword [esp + 0x14]
mov ebx, dword [ebx + eax*4]
mov dword [esp + 0x20], ebx
jmp 0x4defab
cmp eax, 0xa
jne 0x4dedb8
mov edx, dword [ebp + 0x30]
sub edi, ebx
mov ecx, dword [ebp + 0x2c]
add ecx, edx
lea eax, [edx + edi]
imul eax, dword [ebp + 4]
cdq
idiv ecx
mov edx, dword [esp + 0x14]
mov ebx, dword [esi + eax*4]
mov dword [esp + 0x20], ebx
jmp 0x4defab
cmp eax, 0xb
jne 0x4dee0f
mov eax, dword [ebp + 0x30]
sub eax, dword [esp + 0x44]
imul eax, dword [ebp + 4]
mov ecx, dword [ebp + 0x2c]
sub ecx, dword [esp + 0x54]
imul ecx, dword [ebp + 4]
imul eax, eax, 0x3e8
cdq
idiv dword [ebp + 0x30]
mov esi, eax
imul eax, ecx, 0x3e8
cdq
idiv dword [ebp + 0x2c]
mov ebx, dword [ebp]
add esi, eax
mov eax, 0x10624dd3
imul esi
sar edx, 7
mov eax, edx
shr eax, 0x1f
add eax, edx
mov edx, dword [esp + 0x14]
mov ebx, dword [ebx + eax*4]
mov dword [esp + 0x20], ebx
jmp 0x4defab
cmp eax, 0xc
jne 0x4dee3a
mov ecx, dword [ebp + 0x2c]
mov eax, ecx
add ecx, dword [ebp + 0x30]
sub eax, edi
sub eax, ebx
add eax, dword [ebp + 0x30]
imul eax, dword [ebp + 4]
cdq
idiv ecx
mov edx, dword [esp + 0x14]
mov ebx, dword [esi + eax*4]
mov dword [esp + 0x20], ebx
jmp 0x4defab
cmp eax, 0xd
jne 0x4dee6c
mov esi, dword [ebp + 0x30]
mov eax, esi
mov ecx, dword [ebp + 0x2c]
sub eax, ebx
imul esi, dword [ebp + 0x2c]
sub ecx, edi
imul eax, ecx
mov ebx, dword [ebp]
imul eax, dword [ebp + 4]
cdq
idiv esi
mov edx, dword [esp + 0x14]
mov ebx, dword [ebx + eax*4]
mov dword [esp + 0x20], ebx
jmp 0x4defab
cmp eax, 0xe
jne 0x4dee97
mov eax, dword [ebp + 0x30]
mov ecx, dword [ebp + 0x2c]
sub eax, ebx
imul eax, dword [ebp + 4]
imul ecx, dword [ebp + 0x30]
imul eax, edi
cdq
idiv ecx
mov edx, dword [esp + 0x14]
mov ebx, dword [esi + eax*4]
mov dword [esp + 0x20], ebx
jmp 0x4defab
cmp eax, 0xf
jne 0x4deec2
mov eax, dword [ebp + 0x2c]
mov ecx, dword [ebp + 0x30]
sub eax, edi
imul eax, dword [ebp + 4]
imul ecx, dword [ebp + 0x2c]
imul eax, ebx
cdq
idiv ecx
mov edx, dword [esp + 0x14]
mov ebx, dword [esi + eax*4]
mov dword [esp + 0x20], ebx
jmp 0x4defab
cmp eax, 0x10
jne 0x4deeea
mov eax, dword [ebp + 4]
mov ecx, dword [ebp + 0x30]
imul ecx, dword [ebp + 0x2c]
imul eax, edi
imul eax, ebx
cdq
idiv ecx
mov edx, dword [esp + 0x14]
mov ebx, dword [esi + eax*4]
mov dword [esp + 0x20], ebx
jmp 0x4defab
cmp eax, 0x11
jne 0x4def27
mov edx, dword [ebp + 0x2c]
mov eax, edx
mov esi, dword [ebp + 0x30]
sub eax, edi
mov ecx, esi
imul eax, eax
sub ecx, ebx
imul edx, edx
imul ecx, ecx
imul esi, esi
mov ebx, dword [ebp]
add eax, ecx
imul eax, dword [ebp + 4]
add esi, edx
cdq
idiv esi
mov edx, dword [esp + 0x14]
mov ebx, dword [ebx + eax*4]
mov dword [esp + 0x20], ebx
jmp 0x4defab
cmp eax, 0x12
jne 0x4def40
mov ecx, dword [ebp + 0x30]
mov eax, ecx
mov esi, dword [ebp + 0x2c]
sub eax, ebx
imul edi, edi
imul eax, eax
add eax, edi
jmp 0x4def57
cmp eax, 0x13
jne 0x4def76
mov esi, dword [ebp + 0x2c]
mov eax, esi
mov ecx, dword [ebp + 0x30]
sub eax, edi
imul ebx, ebx
imul eax, eax
add eax, ebx
imul eax, dword [ebp + 4]
imul esi, esi
imul ecx, ecx
mov ebx, dword [ebp]
cdq
add esi, ecx
idiv esi
mov edx, dword [esp + 0x14]
mov ebx, dword [ebx + eax*4]
mov dword [esp + 0x20], ebx
jmp 0x4defab
cmp eax, 0x14
jne 0x4defa7
mov eax, dword [ebp + 0x30]
mov ecx, dword [ebp + 0x2c]
imul edi, edi
imul ebx, ebx
imul eax, eax
imul ecx, ecx
add edi, ebx
imul edi, dword [ebp + 4]
add ecx, eax
mov eax, edi
cdq
idiv ecx
mov edx, dword [esp + 0x14]
mov ebx, dword [esi + eax*4]
mov dword [esp + 0x20], ebx
jmp 0x4defab
mov ebx, dword [esp + 0x20]
mov ecx, dword [ebp + 0x10]
test ecx, ecx
je 0x4df078
push dword [esp + 0x18]
push edx
call fcn.004dddaa
mov ecx, eax
mov eax, ebx
sar eax, 0x18
movzx edx, al
mov dword [esp + 0x1c], ecx
mov dword [esp + 0x54], edx
test al, al
je 0x4df07c
mov eax, ecx
movzx ebp, cl
sar eax, 8
movzx esi, al
mov eax, ecx
sar eax, 0x10
movzx edi, al
mov eax, ebx
sar eax, 8
movzx ecx, al
mov eax, 0x80808081
sub ecx, esi
imul ecx, edx
imul ecx
mov eax, dword [esp + 0x20]
sar eax, 0x10
add edx, ecx
movzx ecx, al
mov eax, 0x80808081
sar edx, 7
sub ecx, edi
imul ecx, dword [esp + 0x54]
mov ebx, edx
shr ebx, 0x1f
add ebx, edx
add ebx, esi
shl ebx, 8
imul ecx
add edx, ecx
sar edx, 7
mov eax, edx
shr eax, 0x1f
add eax, edx
add eax, edi
shl eax, 0x10
or ebx, eax
mov eax, dword [esp + 0x20]
movzx ecx, al
mov eax, 0x80808081
sub ecx, ebp
imul ecx, dword [esp + 0x54]
imul ecx
add edx, ecx
sar edx, 7
mov eax, edx
shr eax, 0x1f
add eax, edx
add eax, ebp
or ebx, eax
mov eax, dword [esp + 0x1c]
and eax, 0xff000000
or eax, ebx
mov dword [esp + 0x1c], eax
mov ecx, eax
jmp 0x4e1542
mov dword [esp + 0x1c], ebx
mov ecx, dword [esp + 0x1c]
jmp 0x4e1542
mov ebp, dword [ebx + 8]
test ebp, ebp
je 0x4e1673
movzx ecx, byte [ebx]
xor ebx, ebx
mov eax, ecx
mov dword [esp + 0x3c], ecx
imul eax, edx
mov dword [esp + 0x1c], ebx
mov byte [esp + 0x13], bl
add eax, esi
xor esi, esi
mov eax, dword [ebp + eax*4]
xor ebp, ebp
mov dword [esp + 0x20], eax
mov dword [esp + 0x44], ebp
test al, al
je 0x4df108
mov edx, dword [esp + 0x3c]
mov esi, dword [esp + 0x34]
movzx ecx, al
sub edx, ecx
mov dword [esp + 0x50], edx
mov edx, edi
test edx, edx
js 0x4df104
mov ebx, dword [esp + 0x40]
mov ecx, edx
shl ecx, 4
add ecx, edx
lea ecx, [ebx + ecx*4]
mov ebx, dword [esp + 0x50]
lea esp, [esp]
mov ebp, ecx
dec edx
sub ecx, 0x44
mov dword [esp + 0x50], ebp
cmp ebx, dword [ebp + 0x34]
jge 0x4df0fe
mov esi, ebp
test edx, edx
jns 0x4df0e9
mov ebp, dword [esp + 0x44]
mov ebx, ebp
mov ecx, dword [esp + 0x3c]
test ah, ah
je 0x4df174
mov ebx, dword [esp + 0x34]
movzx eax, ah
sub ecx, eax
mov dword [esp + 0x1c], ebx
mov dword [esp + 0x50], ecx
mov ecx, edi
test ecx, ecx
js 0x4df14e
mov edx, dword [esp + 0x40]
mov eax, ecx
shl eax, 4
add eax, ecx
lea eax, [edx + eax*4]
mov ebp, dword [esp + 0x50]
mov edx, eax
dec ecx
sub eax, 0x44
cmp ebp, dword [edx + 0x34]
mov ebp, dword [esp + 0x44]
jge 0x4df158
mov ebx, edx
mov dword [esp + 0x1c], ebx
test ecx, ecx
jns 0x4df131
mov ecx, dword [esp + 0x54]
test ecx, ecx
je 0x4df174
jmp 0x4df15c
mov ecx, dword [esp + 0x54]
mov edx, dword [esp + 0x40]
mov eax, ecx
shl eax, 4
add eax, ecx
mov ecx, dword [esp + 0x50]
cmp ecx, dword [edx + eax*4 - 0x10]
sete byte [esp + 0x13]
mov al, byte [esp + 0x22]
test al, al
je 0x4df1b4
mov edx, dword [esp + 0x3c]
mov ebp, dword [esp + 0x34]
movzx eax, al
sub edx, eax
mov dword [esp + 0x44], ebp
test edi, edi
js 0x4df1b4
mov ecx, dword [esp + 0x40]
mov eax, edi
shl eax, 4
add eax, edi
lea eax, [ecx + eax*4]
mov ecx, eax
dec edi
sub eax, 0x44
cmp edx, dword [ecx + 0x34]
jge 0x4df1b0
mov ebp, ecx
test edi, edi
jns 0x4df19f
mov dword [esp + 0x44], ebp
test ebx, ebx
je 0x4dff0c
mov eax, dword [esp + 0x14]
xor ecx, ecx
mov edi, dword [esp + 0x18]
mov ebp, eax
sub ebp, dword [ebx + 0x24]
sub edi, dword [ebx + 0x28]
mov edx, dword [ebx]
mov dword [esp + 0x50], ebp
mov dword [esp + 0x3c], edi
mov dword [esp + 0x20], ecx
mov dword [esp + 0x54], edx
test edx, edx
je 0x4df5b7
mov eax, dword [ebx + 0x20]
test eax, eax
jne 0x4df1f6
mov ecx, dword [edx]
jmp 0x4df4d6
cmp eax, 1
jne 0x4df20a
mov eax, dword [ebx + 4]
imul eax, edi
cdq
idiv dword [ebx + 0x30]
jmp 0x4df4d1
cmp eax, 2
jne 0x4df221
mov eax, dword [ebx + 0x30]
sub eax, edi
imul eax, dword [ebx + 4]
cdq
idiv dword [ebx + 0x30]
jmp 0x4df4d1
cmp eax, 3
jne 0x4df235
mov eax, dword [ebx + 4]
imul eax, ebp
cdq
idiv dword [ebx + 0x2c]
jmp 0x4df4d1
cmp eax, 4
jne 0x4df24c
mov eax, dword [ebx + 0x2c]
sub eax, ebp
imul eax, dword [ebx + 4]
cdq
idiv dword [ebx + 0x2c]
jmp 0x4df4d1
cmp eax, 5
jne 0x4df28c
mov ecx, dword [ebx + 4]
mov eax, ecx
imul eax, ebp
imul ecx, dword [esp + 0x3c]
imul eax, eax, 0x3e8
cdq
idiv dword [ebx + 0x2c]
mov edi, eax
imul eax, ecx, 0x3e8
cdq
idiv dword [ebx + 0x30]
add edi, eax
mov eax, 0x10624dd3
imul edi
sar edx, 7
mov eax, edx
shr eax, 0x1f
add eax, edx
jmp 0x4df4d1
cmp eax, 6
jne 0x4df2a3
mov ecx, dword [ebx + 0x30]
lea eax, [edi + ebp]
imul eax, dword [ebx + 4]
add ecx, dword [ebx + 0x2c]
jmp 0x4df4ce
cmp eax, 7
jne 0x4df2f3
mov edi, dword [ebx + 4]
mov eax, edi
imul eax, dword [esp + 0x3c]
mov ebp, dword [ebx + 0x2c]
mov ecx, ebp
imul eax, eax, 0x3e8
cdq
idiv dword [ebx + 0x30]
sub ecx, dword [esp + 0x50]
imul ecx, edi
mov ebx, eax
imul eax, ecx, 0x3e8
cdq
idiv ebp
add ebx, eax
mov eax, 0x10624dd3
imul ebx
mov ecx, dword [esp + 0x54]
mov ebx, dword [esp + 0x1c]
sar edx, 7
mov eax, edx
shr eax, 0x1f
add eax, edx
jmp 0x4df4d3
cmp eax, 8
jne 0x4df30e
mov eax, dword [ebx + 0x2c]
mov ecx, dword [ebx + 0x30]
sub eax, ebp
add eax, edi
imul eax, dword [ebx + 4]
add ecx, dword [ebx + 0x2c]
jmp 0x4df4ce
cmp eax, 9
jne 0x4df332
mov edi, dword [ebx + 4]
mov eax, edi
imul eax, dword [esp + 0x50]
mov ebp, dword [ebx + 0x30]
mov ecx, ebp
imul eax, eax, 0x3e8
cdq
idiv dword [ebx + 0x2c]
sub ecx, dword [esp + 0x3c]
jmp 0x4df2c5
cmp eax, 0xa
jne 0x4df34d
mov eax, dword [ebx + 0x30]
mov ecx, dword [ebx + 0x2c]
sub eax, edi
add eax, ebp
imul eax, dword [ebx + 4]
add ecx, dword [ebx + 0x30]
jmp 0x4df4ce
cmp eax, 0xb
jne 0x4df38e
mov ecx, dword [esp + 0x1c]
mov eax, dword [ecx + 0x30]
sub eax, edi
imul eax, dword [ebx + 4]
imul eax, eax, 0x3e8
cdq
idiv dword [ecx + 0x30]
mov ecx, dword [ebx + 0x2c]
sub ecx, dword [esp + 0x50]
mov edi, eax
imul ecx, dword [ebx + 4]
imul eax, ecx, 0x3e8
cdq
idiv dword [ebx + 0x2c]
add edi, eax
mov eax, 0x10624dd3
imul edi
jmp 0x4df2dc
cmp eax, 0xc
jne 0x4df3ab
mov ecx, dword [ebx + 0x2c]
mov eax, ecx
sub eax, ebp
sub eax, edi
add eax, dword [ebx + 0x30]
imul eax, dword [ebx + 4]
add ecx, dword [ebx + 0x30]
jmp 0x4df4ce
cmp eax, 0xd
jne 0x4df3d1
mov edi, dword [ebx + 0x30]
mov eax, edi
sub eax, dword [esp + 0x3c]
mov ecx, dword [ebx + 0x2c]
imul edi, dword [ebx + 0x2c]
sub ecx, ebp
imul eax, ecx
imul eax, dword [ebx + 4]
cdq
idiv edi
jmp 0x4df4d1
cmp eax, 0xe
jne 0x4df3ee
mov eax, dword [ebx + 0x30]
mov ecx, dword [ebx + 0x2c]
sub eax, edi
imul eax, dword [ebx + 4]
imul eax, ebp
imul ecx, dword [ebx + 0x30]
jmp 0x4df4ce
cmp eax, 0xf
jne 0x4df40b
mov eax, dword [ebx + 0x2c]
mov ecx, dword [ebx + 0x30]
sub eax, ebp
imul eax, dword [ebx + 4]
imul eax, edi
imul ecx, dword [ebx + 0x2c]
jmp 0x4df4ce
cmp eax, 0x10
jne 0x4df425
mov eax, dword [ebx + 4]
mov ecx, dword [ebx + 0x30]
imul ecx, dword [ebx + 0x2c]
imul eax, ebp
imul eax, edi
jmp 0x4df4ce
cmp eax, 0x11
jne 0x4df456
mov edx, dword [ebx + 0x2c]
mov eax, edx
mov edi, dword [ebx + 0x30]
sub eax, ebp
mov ecx, edi
imul eax, eax
sub ecx, dword [esp + 0x3c]
imul ecx, ecx
imul edx, edx
imul edi, edi
add eax, ecx
imul eax, dword [ebx + 4]
add edi, edx
cdq
idiv edi
jmp 0x4df4d1
cmp eax, 0x12
jne 0x4df481
mov edx, dword [ebx + 0x30]
mov ecx, edx
sub ecx, dword [esp + 0x3c]
mov edi, dword [ebx + 0x2c]
imul ebp, ebp
imul ecx, ecx
imul edx, edx
imul edi, edi
add edi, edx
lea eax, [ecx + ebp]
imul eax, dword [ebx + 4]
cdq
idiv edi
jmp 0x4df4d1
cmp eax, 0x13
jne 0x4df4ad
mov edi, dword [ebx + 0x2c]
mov ecx, edi
mov eax, dword [esp + 0x3c]
sub ecx, ebp
mov edx, dword [ebx + 0x30]
imul eax, eax
imul ecx, ecx
imul edx, edx
imul edi, edi
add eax, ecx
imul eax, dword [ebx + 4]
add edi, edx
cdq
idiv edi
jmp 0x4df4d1
cmp eax, 0x14
jne 0x4df4da
mov eax, dword [ebx + 0x30]
mov ecx, dword [ebx + 0x2c]
imul ebp, ebp
imul edi, edi
imul eax, eax
imul ecx, ecx
add ebp, edi
imul ebp, dword [ebx + 4]
add ecx, eax
mov eax, ebp
cdq
idiv ecx
mov ecx, dword [ebx]
mov ecx, dword [ecx + eax*4]
mov dword [esp + 0x20], ecx
mov eax, dword [ebx + 0x10]
test eax, eax
je 0x4df5b3
push dword [esp + 0x18]
mov ecx, eax
push dword [esp + 0x18]
call fcn.004dddaa
mov edx, dword [esp + 0x20]
mov ecx, eax
mov eax, edx
mov dword [esp + 0x1c], ecx
sar eax, 0x18
movzx ebp, al
mov dword [esp + 0x54], ebp
test al, al
jne 0x4df517
mov eax, dword [esp + 0x14]
jmp 0x4df5bb
movzx eax, cl
mov dword [esp + 0x50], eax
mov eax, ecx
sar eax, 8
movzx edi, al
mov eax, ecx
sar eax, 0x10
movzx ebx, al
mov eax, edx
sar eax, 8
movzx ecx, al
mov eax, 0x80808081
sub ecx, edi
imul ecx, ebp
imul ecx
mov eax, dword [esp + 0x20]
sar eax, 0x10
add edx, ecx
movzx ecx, al
mov eax, 0x80808081
sar edx, 7
sub ecx, ebx
imul ecx, dword [esp + 0x54]
mov ebp, edx
shr ebp, 0x1f
add ebp, edx
add ebp, edi
shl ebp, 8
imul ecx
add edx, ecx
sar edx, 7
mov eax, edx
shr eax, 0x1f
add eax, edx
add eax, ebx
shl eax, 0x10
or ebp, eax
mov eax, dword [esp + 0x20]
movzx ecx, al
mov eax, 0x80808081
sub ecx, dword [esp + 0x50]
imul ecx, dword [esp + 0x54]
imul ecx
add edx, ecx
mov ecx, dword [esp + 0x1c]
sar edx, 7
and ecx, 0xff000000
mov eax, edx
shr eax, 0x1f
add eax, edx
add eax, dword [esp + 0x50]
or ebp, eax
or ecx, ebp
mov eax, dword [esp + 0x14]
mov dword [esp + 0x1c], ecx
test esi, esi
je 0x4dfa6e
mov edx, dword [esp + 0x18]
mov ebx, eax
sub ebx, dword [esi + 0x24]
mov ebp, edx
sub ebp, dword [esi + 0x28]
mov edi, dword [esi]
mov dword [esp + 0x50], ebx
mov dword [esp + 0x54], ebp
mov dword [esp + 0x20], 0
test edi, edi
jne 0x4df5ee
xor ecx, ecx
jmp 0x4dfa4c
mov eax, dword [esi + 0x20]
test eax, eax
jne 0x4df600
mov ebx, dword [edi]
mov dword [esp + 0x20], ebx
jmp 0x4df985
cmp eax, 1
jne 0x4df61f
mov eax, dword [esi + 4]
imul eax, ebp
cdq
idiv dword [esi + 0x30]
mov edx, dword [esp + 0x18]
mov ebx, dword [edi + eax*4]
mov dword [esp + 0x20], ebx
jmp 0x4df985
cmp eax, 2
jne 0x4df641
mov eax, dword [esi + 0x30]
sub eax, ebp
imul eax, dword [esi + 4]
cdq
idiv dword [esi + 0x30]
mov edx, dword [esp + 0x18]
mov ebx, dword [edi + eax*4]
mov dword [esp + 0x20], ebx
jmp 0x4df985
cmp eax, 3
jne 0x4df660
mov eax, dword [esi + 4]
imul eax, ebx
cdq
idiv dword [esi + 0x2c]
mov edx, dword [esp + 0x18]
mov ebx, dword [edi + eax*4]
mov dword [esp + 0x20], ebx
jmp 0x4df985
cmp eax, 4
jne 0x4df682
mov eax, dword [esi + 0x2c]
sub eax, ebx
imul eax, dword [esi + 4]
cdq
idiv dword [esi + 0x2c]
mov edx, dword [esp + 0x18]
mov ebx, dword [edi + eax*4]
mov dword [esp + 0x20], ebx
jmp 0x4df985
cmp eax, 5
jne 0x4df6aa
imul ebx, dword [esi + 4]
imul ebp, dword [esi + 4]
imul eax, ebx, 0x3e8
cdq
idiv dword [esi + 0x2c]
mov edi, eax
imul eax, ebp, 0x3e8
cdq
idiv dword [esi + 0x30]
jmp 0x4df7aa
cmp eax, 6
jne 0x4df6b4
lea eax, [ebx + ebp]
jmp 0x4df6fc
cmp eax, 7
jne 0x4df6f0
mov eax, dword [esi + 4]
imul eax, dword [esp + 0x54]
mov ecx, dword [esi + 0x2c]
sub ecx, dword [esp + 0x50]
imul ecx, dword [esi + 4]
imul eax, eax, 0x3e8
cdq
idiv dword [esi + 0x30]
mov ebx, eax
imul eax, ecx, 0x3e8
cdq
idiv dword [esi + 0x2c]
add ebx, eax
mov eax, 0x10624dd3
imul ebx
jmp 0x4df7b3
cmp eax, 8
jne 0x4df719
mov eax, dword [esi + 0x2c]
sub eax, ebx
add eax, ebp
imul eax, dword [esi + 4]
mov ecx, dword [esi + 0x30]
add ecx, dword [esi + 0x2c]
cdq
idiv ecx
mov edx, dword [esp + 0x18]
mov ebx, dword [edi + eax*4]
mov dword [esp + 0x20], ebx
jmp 0x4df985
cmp eax, 9
jne 0x4df750
mov eax, dword [esi + 4]
imul eax, ebx
mov ecx, dword [esi + 0x30]
sub ecx, dword [esp + 0x54]
imul ecx, dword [esi + 4]
imul eax, eax, 0x3e8
cdq
idiv dword [esi + 0x2c]
mov ebx, eax
imul eax, ecx, 0x3e8
cdq
idiv dword [esi + 0x30]
add ebx, eax
mov eax, 0x10624dd3
imul ebx
jmp 0x4df7b3
cmp eax, 0xa
jne 0x4df779
mov eax, dword [esi + 0x30]
mov ecx, dword [esi + 0x2c]
sub eax, ebp
add ecx, dword [esi + 0x30]
add eax, ebx
imul eax, dword [esi + 4]
cdq
idiv ecx
mov edx, dword [esp + 0x18]
mov ebx, dword [edi + eax*4]
mov dword [esp + 0x20], ebx
jmp 0x4df985
cmp eax, 0xb
jne 0x4df7cf
mov eax, dword [esi + 0x30]
sub eax, dword [esp + 0x54]
imul eax, dword [esi + 4]
mov ecx, dword [esi + 0x2c]
sub ecx, dword [esp + 0x50]
imul ecx, dword [esi + 4]
imul eax, eax, 0x3e8
cdq
idiv dword [esi + 0x30]
mov edi, eax
imul eax, ecx, 0x3e8
cdq
idiv dword [esi + 0x2c]
add edi, eax
mov eax, 0x10624dd3
imul edi
mov ebx, dword [esi]
sar edx, 7
mov eax, edx
shr eax, 0x1f
add eax, edx
mov edx, dword [esp + 0x18]
mov ebx, dword [ebx + eax*4]
mov dword [esp + 0x20], ebx
jmp 0x4df985
cmp eax, 0xc
jne 0x4df7fa
mov ecx, dword [esi + 0x2c]
mov eax, ecx
add ecx, dword [esi + 0x30]
sub eax, ebx
sub eax, ebp
add eax, dword [esi + 0x30]
imul eax, dword [esi + 4]
cdq
idiv ecx
mov edx, dword [esp + 0x18]
mov ebx, dword [edi + eax*4]
mov dword [esp + 0x20], ebx
jmp 0x4df985
cmp eax, 0xd
jne 0x4df82b
mov edi, dword [esi + 0x30]
mov eax, edi
mov ecx, dword [esi + 0x2c]
sub eax, ebp
imul edi, dword [esi + 0x2c]
sub ecx, ebx
imul eax, ecx
mov ebx, dword [esi]
imul eax, dword [esi + 4]
cdq
idiv edi
mov edx, dword [esp + 0x18]
mov ebx, dword [ebx + eax*4]
mov dword [esp + 0x20], ebx
jmp 0x4df985
cmp eax, 0xe
jne 0x4df856
mov eax, dword [esi + 0x30]
mov ecx, dword [esi + 0x2c]
sub eax, ebp
imul eax, dword [esi + 4]
imul ecx, dword [esi + 0x30]
imul eax, ebx
cdq
idiv ecx
mov edx, dword [esp + 0x18]
mov ebx, dword [edi + eax*4]
mov dword [esp + 0x20], ebx
jmp 0x4df985
cmp eax, 0xf
jne 0x4df881
mov eax, dword [esi + 0x2c]
mov ecx, dword [esi + 0x30]
sub eax, ebx
imul eax, dword [esi + 4]
imul ecx, dword [esi + 0x2c]
imul eax, ebp
cdq
idiv ecx
mov edx, dword [esp + 0x18]
mov ebx, dword [edi + eax*4]
mov dword [esp + 0x20], ebx
jmp 0x4df985
cmp eax, 0x10
jne 0x4df8a9
mov eax, dword [esi + 4]
mov ecx, dword [esi + 0x30]
imul ecx, dword [esi + 0x2c]
imul eax, ebx
imul eax, ebp
cdq
idiv ecx
mov edx, dword [esp + 0x18]
mov ebx, dword [edi + eax*4]
mov dword [esp + 0x20], ebx
jmp 0x4df985
cmp eax, 0x11
jne 0x4df8e5
mov edx, dword [esi + 0x2c]
mov eax, edx
mov edi, dword [esi + 0x30]
sub eax, ebx
mov ecx, edi
imul eax, eax
sub ecx, ebp
imul edx, edx
imul ecx, ecx
imul edi, edi
mov ebx, dword [esi]
add eax, ecx
imul eax, dword [esi + 4]
add edi, edx
cdq
idiv edi
mov edx, dword [esp + 0x18]
mov ebx, dword [ebx + eax*4]
mov dword [esp + 0x20], ebx
jmp 0x4df985
cmp eax, 0x12
jne 0x4df91a
mov ecx, dword [esi + 0x30]
mov eax, ecx
mov edi, dword [esi + 0x2c]
sub eax, ebp
imul eax, eax
imul ebx, ebx
imul edi, edi
imul ecx, ecx
add eax, ebx
mov ebx, dword [esi]
imul eax, dword [esi + 4]
add edi, ecx
cdq
idiv edi
mov edx, dword [esp + 0x18]
mov ebx, dword [ebx + eax*4]
mov dword [esp + 0x20], ebx
jmp 0x4df985
cmp eax, 0x13
jne 0x4df94f
mov edi, dword [esi + 0x2c]
mov eax, edi
mov ecx, dword [esi + 0x30]
sub eax, ebx
imul eax, eax
imul ebp, ebp
imul edi, edi
imul ecx, ecx
mov ebx, dword [esi]
add eax, ebp
imul eax, dword [esi + 4]
add edi, ecx
cdq
idiv edi
mov edx, dword [esp + 0x18]
mov ebx, dword [ebx + eax*4]
mov dword [esp + 0x20], ebx
jmp 0x4df985
cmp eax, 0x14
jne 0x4df981
mov ecx, dword [esi + 0x30]
mov edi, dword [esi + 0x2c]
imul ebx, ebx
imul ebp, ebp
imul edi, edi
imul ecx, ecx
add edi, ecx
lea eax, [ebx + ebp]
mov ebx, dword [esi]
imul eax, dword [esi + 4]
cdq
idiv edi
mov edx, dword [esp + 0x18]
mov ebx, dword [ebx + eax*4]
mov dword [esp + 0x20], ebx
jmp 0x4df985
mov ebx, dword [esp + 0x20]
mov ecx, dword [esi + 0x10]
test ecx, ecx
je 0x4dfa4a
push edx
push dword [esp + 0x18]
call fcn.004dddaa
mov ecx, eax
mov eax, ebx
sar eax, 0x18
movzx edx, al
mov dword [esp + 0x50], ecx
mov dword [esp + 0x54], edx
test al, al
je 0x4dfa4c
mov eax, ecx
movzx ebp, cl
sar eax, 8
movzx esi, al
mov eax, ecx
sar eax, 0x10
movzx edi, al
mov eax, ebx
sar eax, 8
movzx ecx, al
mov eax, 0x80808081
sub ecx, esi
imul ecx, edx
imul ecx
mov eax, dword [esp + 0x20]
sar eax, 0x10
add edx, ecx
movzx ecx, al
mov eax, 0x80808081
sar edx, 7
sub ecx, edi
imul ecx, dword [esp + 0x54]
mov ebx, edx
shr ebx, 0x1f
add ebx, edx
add ebx, esi
shl ebx, 8
imul ecx
add edx, ecx
sar edx, 7
mov eax, edx
shr eax, 0x1f
add eax, edx
add eax, edi
shl eax, 0x10
or ebx, eax
mov eax, dword [esp + 0x20]
movzx ecx, al
mov eax, 0x80808081
sub ecx, ebp
imul ecx, dword [esp + 0x54]
imul ecx
add edx, ecx
mov ecx, dword [esp + 0x50]
sar edx, 7
and ecx, 0xff000000
mov eax, edx
shr eax, 0x1f
add eax, edx
add eax, ebp
or ebx, eax
or ecx, ebx
jmp 0x4dfa4c
mov ecx, ebx
movzx eax, byte [esp + 0x13]
mov edx, ecx
mov ecx, dword [esp + 0x1c]
neg eax
sbb eax, eax
and eax, 0xfffffff1
add eax, 0x50
push eax
call fcn.004ddccf
add esp, 4
mov dword [esp + 0x1c], eax
mov ebp, dword [esp + 0x44]
test ebp, ebp
je 0x4dff03
mov edx, dword [esp + 0x14]
mov ebx, edx
mov edi, dword [esp + 0x18]
sub ebx, dword [ebp + 0x24]
sub edi, dword [ebp + 0x28]
mov esi, dword [ebp]
mov dword [esp + 0x54], ebx
mov dword [esp + 0x50], edi
mov dword [esp + 0x20], 0
test esi, esi
jne 0x4dfaa8
xor ecx, ecx
jmp 0x4dfee1
mov eax, dword [ebp + 0x20]
test eax, eax
jne 0x4dfaba
mov ebx, dword [esi]
mov dword [esp + 0x20], ebx
jmp 0x4dfe1a
cmp eax, 1
jne 0x4dfad9
mov eax, dword [ebp + 4]
imul eax, edi
cdq
idiv dword [ebp + 0x30]
mov edx, dword [esp + 0x14]
mov ebx, dword [esi + eax*4]
mov dword [esp + 0x20], ebx
jmp 0x4dfe1a
cmp eax, 2
jne 0x4dfafb
mov eax, dword [ebp + 0x30]
sub eax, edi
imul eax, dword [ebp + 4]
cdq
idiv dword [ebp + 0x30]
mov edx, dword [esp + 0x14]
mov ebx, dword [esi + eax*4]
mov dword [esp + 0x20], ebx
jmp 0x4dfe1a
cmp eax, 3
jne 0x4dfb1a
mov eax, dword [ebp + 4]
imul eax, ebx
cdq
idiv dword [ebp + 0x2c]
mov edx, dword [esp + 0x14]
mov ebx, dword [esi + eax*4]
mov dword [esp + 0x20], ebx
jmp 0x4dfe1a
cmp eax, 4
jne 0x4dfb3c
mov eax, dword [ebp + 0x2c]
sub eax, ebx
imul eax, dword [ebp + 4]
cdq
idiv dword [ebp + 0x2c]
mov edx, dword [esp + 0x14]
mov ebx, dword [esi + eax*4]
mov dword [esp + 0x20], ebx
jmp 0x4dfe1a
cmp eax, 5
jne 0x4dfb67
mov ecx, dword [ebp + 4]
mov eax, ecx
imul eax, edi
imul ecx, ebx
imul eax, eax, 0x3e8
cdq
idiv dword [ebp + 0x30]
mov esi, eax
imul eax, ecx, 0x3e8
cdq
idiv dword [ebp + 0x2c]
jmp 0x4dfc76
cmp eax, 6
jne 0x4dfb71
lea eax, [edi + ebx]
jmp 0x4dfbab
cmp eax, 7
jne 0x4dfb9f
mov eax, dword [ebp + 4]
imul eax, edi
mov ecx, dword [ebp + 0x2c]
sub ecx, dword [esp + 0x54]
imul ecx, dword [ebp + 4]
imul eax, eax, 0x3e8
cdq
idiv dword [ebp + 0x30]
mov edi, eax
imul eax, ecx, 0x3e8
cdq
idiv dword [ebp + 0x2c]
jmp 0x4dfbf6
cmp eax, 8
jne 0x4dfbc8
mov eax, dword [ebp + 0x2c]
sub eax, ebx
add eax, edi
imul eax, dword [ebp + 4]
mov ecx, dword [ebp + 0x30]
add ecx, dword [ebp + 0x2c]
cdq
idiv ecx
mov edx, dword [esp + 0x14]
mov ebx, dword [esi + eax*4]
mov dword [esp + 0x20], ebx
jmp 0x4dfe1a
cmp eax, 9
jne 0x4dfc1c
mov eax, dword [ebp + 4]
imul eax, dword [esp + 0x54]
mov ecx, dword [ebp + 0x30]
sub ecx, dword [esp + 0x50]
imul ecx, dword [ebp + 4]
imul eax, eax, 0x3e8
cdq
idiv dword [ebp + 0x2c]
mov edi, eax
imul eax, ecx, 0x3e8
cdq
idiv dword [ebp + 0x30]
mov ebx, dword [ebp]
add edi, eax
mov eax, 0x10624dd3
imul edi
sar edx, 7
mov eax, edx
shr eax, 0x1f
add eax, edx
mov edx, dword [esp + 0x14]
mov ebx, dword [ebx + eax*4]
mov dword [esp + 0x20], ebx
jmp 0x4dfe1a
cmp eax, 0xa
jne 0x4dfc45
mov eax, dword [ebp + 0x30]
mov ecx, dword [ebp + 0x2c]
sub eax, edi
add ecx, dword [ebp + 0x30]
add eax, ebx
imul eax, dword [ebp + 4]
cdq
idiv ecx
mov edx, dword [esp + 0x14]
mov ebx, dword [esi + eax*4]
mov dword [esp + 0x20], ebx
jmp 0x4dfe1a
cmp eax, 0xb
jne 0x4dfc9c
mov eax, dword [ebp + 0x2c]
sub eax, dword [esp + 0x54]
imul eax, dword [ebp + 4]
mov ecx, dword [ebp + 0x30]
sub ecx, dword [esp + 0x50]
imul ecx, dword [ebp + 4]
imul eax, eax, 0x3e8
cdq
idiv dword [ebp + 0x2c]
mov esi, eax
imul eax, ecx, 0x3e8
cdq
idiv dword [ebp + 0x30]
mov ebx, dword [ebp]
add esi, eax
mov eax, 0x10624dd3
imul esi
sar edx, 7
mov eax, edx
shr eax, 0x1f
add eax, edx
mov edx, dword [esp + 0x14]
mov ebx, dword [ebx + eax*4]
mov dword [esp + 0x20], ebx
jmp 0x4dfe1a
cmp eax, 0xc
jne 0x4dfcc7
mov ecx, dword [ebp + 0x2c]
mov eax, ecx
add ecx, dword [ebp + 0x30]
sub eax, edi
sub eax, ebx
add eax, dword [ebp + 0x30]
imul eax, dword [ebp + 4]
cdq
idiv ecx
mov edx, dword [esp + 0x14]
mov ebx, dword [esi + eax*4]
mov dword [esp + 0x20], ebx
jmp 0x4dfe1a
cmp eax, 0xd
jne 0x4dfcf9
mov esi, dword [ebp + 0x2c]
mov eax, esi
mov ecx, dword [ebp + 0x30]
sub eax, ebx
imul esi, dword [ebp + 0x30]
sub ecx, edi
imul eax, ecx
mov ebx, dword [ebp]
imul eax, dword [ebp + 4]
cdq
idiv esi
mov edx, dword [esp + 0x14]
mov ebx, dword [ebx + eax*4]
mov dword [esp + 0x20], ebx
jmp 0x4dfe1a
cmp eax, 0xe
jne 0x4dfd24
mov eax, dword [ebp + 0x30]
mov ecx, dword [ebp + 0x2c]
sub eax, edi
imul eax, dword [ebp + 4]
imul ecx, dword [ebp + 0x30]
imul eax, ebx
cdq
idiv ecx
mov edx, dword [esp + 0x14]
mov ebx, dword [esi + eax*4]
mov dword [esp + 0x20], ebx
jmp 0x4dfe1a
cmp eax, 0xf
jne 0x4dfd4f
mov eax, dword [ebp + 0x2c]
mov ecx, dword [ebp + 0x30]
sub eax, ebx
imul eax, dword [ebp + 4]
imul ecx, dword [ebp + 0x2c]
imul eax, edi
cdq
idiv ecx
mov edx, dword [esp + 0x14]
mov ebx, dword [esi + eax*4]
mov dword [esp + 0x20], ebx
jmp 0x4dfe1a
cmp eax, 0x10
jne 0x4dfd77
mov eax, dword [ebp + 4]
mov ecx, dword [ebp + 0x30]
imul ecx, dword [ebp + 0x2c]
imul eax, edi
imul eax, ebx
cdq
idiv ecx
mov edx, dword [esp + 0x14]
mov ebx, dword [esi + eax*4]
mov dword [esp + 0x20], ebx
jmp 0x4dfe1a
cmp eax, 0x11
jne 0x4dfd94
mov edx, dword [ebp + 0x30]
mov eax, edx
mov esi, dword [ebp + 0x2c]
sub eax, edi
mov ecx, esi
imul eax, eax
sub ecx, ebx
imul ecx, ecx
add eax, ecx
jmp 0x4dfdc6
cmp eax, 0x12
jne 0x4dfdae
mov edx, dword [ebp + 0x30]
mov ecx, edx
mov esi, dword [ebp + 0x2c]
sub ecx, edi
imul ebx, ebx
imul ecx, ecx
lea eax, [ecx + ebx]
jmp 0x4dfdc6
cmp eax, 0x13
jne 0x4dfde5
mov esi, dword [ebp + 0x2c]
mov ecx, esi
mov edx, dword [ebp + 0x30]
sub ecx, ebx
imul edi, edi
imul ecx, ecx
lea eax, [ecx + edi]
imul eax, dword [ebp + 4]
imul edx, edx
imul esi, esi
mov ebx, dword [ebp]
add esi, edx
cdq
idiv esi
mov edx, dword [esp + 0x14]
mov ebx, dword [ebx + eax*4]
mov dword [esp + 0x20], ebx
jmp 0x4dfe1a
cmp eax, 0x14
jne 0x4dfe16
mov eax, dword [ebp + 0x30]
mov ecx, dword [ebp + 0x2c]
imul edi, edi
imul ebx, ebx
imul eax, eax
imul ecx, ecx
add edi, ebx
imul edi, dword [ebp + 4]
add ecx, eax
mov eax, edi
cdq
idiv ecx
mov edx, dword [esp + 0x14]
mov ebx, dword [esi + eax*4]
mov dword [esp + 0x20], ebx
jmp 0x4dfe1a
mov ebx, dword [esp + 0x20]
mov ecx, dword [ebp + 0x10]
test ecx, ecx
je 0x4dfedf
push dword [esp + 0x18]
push edx
call fcn.004dddaa
mov ecx, eax
mov eax, ebx
sar eax, 0x18
movzx edx, al
mov dword [esp + 0x50], ecx
mov dword [esp + 0x54], edx
test al, al
je 0x4dfee1
mov eax, ecx
movzx ebp, cl
sar eax, 8
movzx esi, al
mov eax, ecx
sar eax, 0x10
movzx edi, al
mov eax, ebx
sar eax, 8
movzx ecx, al
mov eax, 0x80808081
sub ecx, esi
imul ecx, edx
imul ecx
mov eax, dword [esp + 0x20]
sar eax, 0x10
add edx, ecx
movzx ecx, al
mov eax, 0x80808081
sar edx, 7
sub ecx, edi
imul ecx, dword [esp + 0x54]
mov ebx, edx
shr ebx, 0x1f
add ebx, edx
add ebx, esi
shl ebx, 8
imul ecx
add edx, ecx
sar edx, 7
mov eax, edx
shr eax, 0x1f
add eax, edx
add eax, edi
shl eax, 0x10
or ebx, eax
mov eax, dword [esp + 0x20]
movzx ecx, al
mov eax, 0x80808081
sub ecx, ebp
imul ecx, dword [esp + 0x54]
imul ecx
add edx, ecx
mov ecx, dword [esp + 0x50]
sar edx, 7
and ecx, 0xff000000
mov eax, edx
shr eax, 0x1f
add eax, edx
add eax, ebp
or ebx, eax
or ecx, ebx
jmp 0x4dfee1
mov ecx, ebx
movzx eax, byte [esp + 0x13]
mov edx, ecx
mov ecx, dword [esp + 0x1c]
neg eax
sbb eax, eax
and eax, 0xfffffff1
add eax, 0x50
push eax
call fcn.004ddccf
add esp, 4
mov dword [esp + 0x1c], eax
mov ecx, dword [esp + 0x1c]
jmp 0x4e1542
test esi, esi
je 0x4e0d3e
mov eax, dword [esi + 0x24]
mov ecx, dword [esi + 0x28]
mov edx, dword [esp + 0x14]
mov edi, dword [esi]
mov dword [esp + 0x20], 0
test ebp, ebp
je 0x4e0870
mov ebp, dword [esp + 0x18]
mov ebx, edx
sub ebx, eax
sub ebp, ecx
mov dword [esp + 0x50], ebx
mov dword [esp + 0x54], ebp
test edi, edi
jne 0x4dff4f
mov dword [esp + 0x3c], edi
jmp 0x4e03b7
mov eax, dword [esi + 0x20]
test eax, eax
jne 0x4dff61
mov ebx, dword [edi]
mov dword [esp + 0x20], ebx
jmp 0x4e02ea
cmp eax, 1
jne 0x4dff80
mov eax, dword [esi + 4]
imul eax, ebp
cdq
idiv dword [esi + 0x30]
mov edx, dword [esp + 0x14]
mov ebx, dword [edi + eax*4]
mov dword [esp + 0x20], ebx
jmp 0x4e02ea
cmp eax, 2
jne 0x4dffa2
mov eax, dword [esi + 0x30]
sub eax, ebp
imul eax, dword [esi + 4]
cdq
idiv dword [esi + 0x30]
mov edx, dword [esp + 0x14]
mov ebx, dword [edi + eax*4]
mov dword [esp + 0x20], ebx
jmp 0x4e02ea
cmp eax, 3
jne 0x4dffc1
mov eax, dword [esi + 4]
imul eax, ebx
cdq
idiv dword [esi + 0x2c]
mov edx, dword [esp + 0x14]
mov ebx, dword [edi + eax*4]
mov dword [esp + 0x20], ebx
jmp 0x4e02ea
cmp eax, 4
jne 0x4dffe3
mov eax, dword [esi + 0x2c]
sub eax, ebx
imul eax, dword [esi + 4]
cdq
idiv dword [esi + 0x2c]
mov edx, dword [esp + 0x14]
mov ebx, dword [edi + eax*4]
mov dword [esp + 0x20], ebx
jmp 0x4e02ea
cmp eax, 5
jne 0x4e000e
mov ecx, dword [esi + 4]
mov eax, ecx
imul eax, ebx
imul ecx, ebp
imul eax, eax, 0x3e8
cdq
idiv dword [esi + 0x2c]
mov edi, eax
imul eax, ecx, 0x3e8
cdq
idiv dword [esi + 0x30]
jmp 0x4e010e
cmp eax, 6
jne 0x4e0018
lea eax, [ebx + ebp]
jmp 0x4e0060
cmp eax, 7
jne 0x4e0054
mov eax, dword [esi + 4]
imul eax, dword [esp + 0x54]
mov ecx, dword [esi + 0x2c]
sub ecx, dword [esp + 0x50]
imul ecx, dword [esi + 4]
imul eax, eax, 0x3e8
cdq
idiv dword [esi + 0x30]
mov ebx, eax
imul eax, ecx, 0x3e8
cdq
idiv dword [esi + 0x2c]
add ebx, eax
mov eax, 0x10624dd3
imul ebx
jmp 0x4e0117
cmp eax, 8
jne 0x4e007d
mov eax, dword [esi + 0x2c]
sub eax, ebx
add eax, ebp
imul eax, dword [esi + 4]
mov ecx, dword [esi + 0x30]
add ecx, dword [esi + 0x2c]
cdq
idiv ecx
mov edx, dword [esp + 0x14]
mov ebx, dword [edi + eax*4]
mov dword [esp + 0x20], ebx
jmp 0x4e02ea
cmp eax, 9
jne 0x4e00b4
mov eax, dword [esi + 4]
imul eax, ebx
mov ecx, dword [esi + 0x30]
sub ecx, dword [esp + 0x54]
imul ecx, dword [esi + 4]
imul eax, eax, 0x3e8
cdq
idiv dword [esi + 0x2c]
mov ebx, eax
imul eax, ecx, 0x3e8
cdq
idiv dword [esi + 0x30]
add ebx, eax
mov eax, 0x10624dd3
imul ebx
jmp 0x4e0117
cmp eax, 0xa
jne 0x4e00dd
mov eax, dword [esi + 0x30]
mov ecx, dword [esi + 0x2c]
sub eax, ebp
add ecx, dword [esi + 0x30]
add eax, ebx
imul eax, dword [esi + 4]
cdq
idiv ecx
mov edx, dword [esp + 0x14]
mov ebx, dword [edi + eax*4]
mov dword [esp + 0x20], ebx
jmp 0x4e02ea
cmp eax, 0xb
jne 0x4e0133
mov eax, dword [esi + 0x30]
sub eax, dword [esp + 0x54]
imul eax, dword [esi + 4]
mov ecx, dword [esi + 0x2c]
sub ecx, dword [esp + 0x50]
imul ecx, dword [esi + 4]
imul eax, eax, 0x3e8
cdq
idiv dword [esi + 0x30]
mov edi, eax
imul eax, ecx, 0x3e8
cdq
idiv dword [esi + 0x2c]
add edi, eax
mov eax, 0x10624dd3
imul edi
mov ebx, dword [esi]
sar edx, 7
mov eax, edx
shr eax, 0x1f
add eax, edx
mov edx, dword [esp + 0x14]
mov ebx, dword [ebx + eax*4]
mov dword [esp + 0x20], ebx
jmp 0x4e02ea
cmp eax, 0xc
jne 0x4e015e
mov ecx, dword [esi + 0x2c]
mov eax, ecx
add ecx, dword [esi + 0x30]
sub eax, ebx
sub eax, ebp
add eax, dword [esi + 0x30]
imul eax, dword [esi + 4]
cdq
idiv ecx
mov edx, dword [esp + 0x14]
mov ebx, dword [edi + eax*4]
mov dword [esp + 0x20], ebx
jmp 0x4e02ea
cmp eax, 0xd
jne 0x4e018f
mov edi, dword [esi + 0x30]
mov eax, edi
mov ecx, dword [esi + 0x2c]
sub eax, ebp
imul edi, dword [esi + 0x2c]
sub ecx, ebx
imul eax, ecx
mov ebx, dword [esi]
imul eax, dword [esi + 4]
cdq
idiv edi
mov edx, dword [esp + 0x14]
mov ebx, dword [ebx + eax*4]
mov dword [esp + 0x20], ebx
jmp 0x4e02ea
cmp eax, 0xe
jne 0x4e01ba
mov eax, dword [esi + 0x30]
mov ecx, dword [esi + 0x2c]
sub eax, ebp
imul eax, dword [esi + 4]
imul ecx, dword [esi + 0x30]
imul eax, ebx
cdq
idiv ecx
mov edx, dword [esp + 0x14]
mov ebx, dword [edi + eax*4]
mov dword [esp + 0x20], ebx
jmp 0x4e02ea
cmp eax, 0xf
jne 0x4e01e5
mov eax, dword [esi + 0x2c]
mov ecx, dword [esi + 0x30]
sub eax, ebx
imul eax, dword [esi + 4]
imul ecx, dword [esi + 0x2c]
imul eax, ebp
cdq
idiv ecx
mov edx, dword [esp + 0x14]
mov ebx, dword [edi + eax*4]
mov dword [esp + 0x20], ebx
jmp 0x4e02ea
cmp eax, 0x10
jne 0x4e020d
mov eax, dword [esi + 4]
mov ecx, dword [esi + 0x30]
imul ecx, dword [esi + 0x2c]
imul eax, ebx
imul eax, ebp
cdq
idiv ecx
mov edx, dword [esp + 0x14]
mov ebx, dword [edi + eax*4]
mov dword [esp + 0x20], ebx
jmp 0x4e02ea
cmp eax, 0x11
jne 0x4e0249
mov edx, dword [esi + 0x2c]
mov eax, edx
mov edi, dword [esi + 0x30]
sub eax, ebx
mov ecx, edi
imul eax, eax
sub ecx, ebp
imul edx, edx
imul ecx, ecx
imul edi, edi
mov ebx, dword [esi]
add eax, ecx
imul eax, dword [esi + 4]
add edi, edx
cdq
idiv edi
mov edx, dword [esp + 0x14]
mov ebx, dword [ebx + eax*4]
mov dword [esp + 0x20], ebx
jmp 0x4e02ea
cmp eax, 0x12
jne 0x4e027f
mov edx, dword [esi + 0x30]
mov ecx, edx
mov edi, dword [esi + 0x2c]
sub ecx, ebp
imul ebx, ebx
imul ecx, ecx
imul edx, edx
imul edi, edi
add edi, edx
lea eax, [ecx + ebx]
mov ebx, dword [esi]
imul eax, dword [esi + 4]
cdq
idiv edi
mov edx, dword [esp + 0x14]
mov ebx, dword [ebx + eax*4]
mov dword [esp + 0x20], ebx
jmp 0x4e02ea
cmp eax, 0x13
jne 0x4e02b5
mov edi, dword [esi + 0x2c]
mov ecx, edi
mov edx, dword [esi + 0x30]
sub ecx, ebx
imul ebp, ebp
imul ecx, ecx
imul edx, edx
imul edi, edi
mov ebx, dword [esi]
add edi, edx
lea eax, [ecx + ebp]
imul eax, dword [esi + 4]
cdq
idiv edi
mov edx, dword [esp + 0x14]
mov ebx, dword [ebx + eax*4]
mov dword [esp + 0x20], ebx
jmp 0x4e02ea
cmp eax, 0x14
jne 0x4e02e6
mov eax, dword [esi + 0x30]
mov ecx, dword [esi + 0x2c]
imul ebx, ebx
imul ebp, ebp
imul eax, eax
imul ecx, ecx
add ebx, ebp
imul ebx, dword [esi + 4]
add ecx, eax
mov eax, ebx
cdq
idiv ecx
mov edx, dword [esp + 0x14]
mov ebx, dword [edi + eax*4]
mov dword [esp + 0x20], ebx
jmp 0x4e02ea
mov ebx, dword [esp + 0x20]
mov ecx, dword [esi + 0x10]
test ecx, ecx
je 0x4e03b3
push dword [esp + 0x18]
push edx
call fcn.004dddaa
mov ecx, eax
mov eax, ebx
sar eax, 0x18
movzx edx, al
mov dword [esp + 0x3c], ecx
mov dword [esp + 0x54], edx
test al, al
je 0x4e03b7
mov eax, ecx
movzx ebp, cl
sar eax, 8
movzx esi, al
mov eax, ecx
sar eax, 0x10
movzx edi, al
mov eax, ebx
sar eax, 8
movzx ecx, al
mov eax, 0x80808081
sub ecx, esi
imul ecx, edx
imul ecx
mov eax, dword [esp + 0x20]
sar eax, 0x10
add edx, ecx
movzx ecx, al
mov eax, 0x80808081
sar edx, 7
sub ecx, edi
imul ecx, dword [esp + 0x54]
mov ebx, edx
shr ebx, 0x1f
add ebx, edx
add ebx, esi
shl ebx, 8
imul ecx
add edx, ecx
sar edx, 7
mov eax, edx
shr eax, 0x1f
add eax, edx
add eax, edi
shl eax, 0x10
or ebx, eax
mov eax, dword [esp + 0x20]
movzx ecx, al
mov eax, 0x80808081
sub ecx, ebp
imul ecx, dword [esp + 0x54]
imul ecx
add edx, ecx
mov ecx, dword [esp + 0x3c]
sar edx, 7
and ecx, 0xff000000
mov eax, edx
shr eax, 0x1f
add eax, edx
add eax, ebp
or ebx, eax
or ecx, ebx
mov dword [esp + 0x3c], ecx
jmp 0x4e03b7
mov dword [esp + 0x3c], ebx
mov ebp, dword [esp + 0x44]
mov edx, dword [esp + 0x14]
mov edi, edx
mov ebx, dword [esp + 0x18]
mov dword [esp + 0x20], 0
sub edi, dword [ebp + 0x24]
sub ebx, dword [ebp + 0x28]
mov esi, dword [ebp]
mov dword [esp + 0x50], edi
mov dword [esp + 0x54], ebx
test esi, esi
jne 0x4e03e9
xor ecx, ecx
jmp 0x4e0859
mov eax, dword [ebp + 0x20]
test eax, eax
jne 0x4e03fb
mov ebx, dword [esi]
mov dword [esp + 0x20], ebx
jmp 0x4e0792
cmp eax, 1
jne 0x4e041a
mov eax, dword [ebp + 4]
imul eax, ebx
cdq
idiv dword [ebp + 0x30]
mov edx, dword [esp + 0x14]
mov ebx, dword [esi + eax*4]
mov dword [esp + 0x20], ebx
jmp 0x4e0792
cmp eax, 2
jne 0x4e043c
mov eax, dword [ebp + 0x30]
sub eax, ebx
imul eax, dword [ebp + 4]
cdq
idiv dword [ebp + 0x30]
mov edx, dword [esp + 0x14]
mov ebx, dword [esi + eax*4]
mov dword [esp + 0x20], ebx
jmp 0x4e0792
cmp eax, 3
jne 0x4e045b
mov eax, dword [ebp + 4]
imul eax, edi
cdq
idiv dword [ebp + 0x2c]
mov edx, dword [esp + 0x14]
mov ebx, dword [esi + eax*4]
mov dword [esp + 0x20], ebx
jmp 0x4e0792
cmp eax, 4
jne 0x4e047d
mov eax, dword [ebp + 0x2c]
sub eax, edi
imul eax, dword [ebp + 4]
cdq
idiv dword [ebp + 0x2c]
mov edx, dword [esp + 0x14]
mov ebx, dword [esi + eax*4]
mov dword [esp + 0x20], ebx
jmp 0x4e0792
cmp eax, 5
jne 0x4e04a8
mov ecx, dword [ebp + 4]
mov eax, ecx
imul eax, edi
imul ecx, ebx
imul eax, eax, 0x3e8
cdq
idiv dword [ebp + 0x2c]
mov esi, eax
imul eax, ecx, 0x3e8
cdq
idiv dword [ebp + 0x30]
jmp 0x4e05d0
cmp eax, 6
jne 0x4e04cd
mov ecx, dword [ebp + 0x30]
lea eax, [edi + ebx]
imul eax, dword [ebp + 4]
add ecx, dword [ebp + 0x2c]
cdq
idiv ecx
mov edx, dword [esp + 0x14]
mov ebx, dword [esi + eax*4]
mov dword [esp + 0x20], ebx
jmp 0x4e0792
cmp eax, 7
jne 0x4e04fd
mov edx, dword [esp + 0x54]
imul edx, dword [ebp + 4]
mov ecx, dword [ebp + 0x2c]
sub ecx, dword [esp + 0x50]
imul ecx, dword [ebp + 4]
imul eax, edx, 0x3e8
cdq
idiv dword [ebp + 0x30]
mov edi, eax
imul eax, ecx, 0x3e8
cdq
idiv dword [ebp + 0x2c]
jmp 0x4e0550
cmp eax, 8
jne 0x4e0526
mov edx, dword [ebp + 0x2c]
sub ebx, edi
mov ecx, dword [ebp + 0x30]
add ecx, edx
lea eax, [edx + ebx]
imul eax, dword [ebp + 4]
cdq
idiv ecx
mov edx, dword [esp + 0x14]
mov ebx, dword [esi + eax*4]
mov dword [esp + 0x20], ebx
jmp 0x4e0792
cmp eax, 9
jne 0x4e0576
imul edi, dword [ebp + 4]
mov ecx, dword [ebp + 0x30]
sub ecx, dword [esp + 0x54]
imul ecx, dword [ebp + 4]
imul eax, edi, 0x3e8
cdq
idiv dword [ebp + 0x2c]
mov edi, eax
imul eax, ecx, 0x3e8
cdq
idiv dword [ebp + 0x30]
mov ebx, dword [ebp]
add edi, eax
mov eax, 0x10624dd3
imul edi
sar edx, 7
mov eax, edx
shr eax, 0x1f
add eax, edx
mov edx, dword [esp + 0x14]
mov ebx, dword [ebx + eax*4]
mov dword [esp + 0x20], ebx
jmp 0x4e0792
cmp eax, 0xa
jne 0x4e059f
mov edx, dword [ebp + 0x30]
sub edi, ebx
mov ecx, dword [ebp + 0x2c]
add ecx, edx
lea eax, [edx + edi]
imul eax, dword [ebp + 4]
cdq
idiv ecx
mov edx, dword [esp + 0x14]
mov ebx, dword [esi + eax*4]
mov dword [esp + 0x20], ebx
jmp 0x4e0792
cmp eax, 0xb
jne 0x4e05f6
mov eax, dword [ebp + 0x30]
sub eax, dword [esp + 0x54]
imul eax, dword [ebp + 4]
mov ecx, dword [ebp + 0x2c]
sub ecx, dword [esp + 0x50]
imul ecx, dword [ebp + 4]
imul eax, eax, 0x3e8
cdq
idiv dword [ebp + 0x30]
mov esi, eax
imul eax, ecx, 0x3e8
cdq
idiv dword [ebp + 0x2c]
mov ebx, dword [ebp]
add esi, eax
mov eax, 0x10624dd3
imul esi
sar edx, 7
mov eax, edx
shr eax, 0x1f
add eax, edx
mov edx, dword [esp + 0x14]
mov ebx, dword [ebx + eax*4]
mov dword [esp + 0x20], ebx
jmp 0x4e0792
cmp eax, 0xc
jne 0x4e0621
mov ecx, dword [ebp + 0x2c]
mov eax, ecx
add ecx, dword [ebp + 0x30]
sub eax, edi
sub eax, ebx
add eax, dword [ebp + 0x30]
imul eax, dword [ebp + 4]
cdq
idiv ecx
mov edx, dword [esp + 0x14]
mov ebx, dword [esi + eax*4]
mov dword [esp + 0x20], ebx
jmp 0x4e0792
cmp eax, 0xd
jne 0x4e0653
mov esi, dword [ebp + 0x30]
mov eax, esi
mov ecx, dword [ebp + 0x2c]
sub eax, ebx
imul esi, dword [ebp + 0x2c]
sub ecx, edi
imul eax, ecx
mov ebx, dword [ebp]
imul eax, dword [ebp + 4]
cdq
idiv esi
mov edx, dword [esp + 0x14]
mov ebx, dword [ebx + eax*4]
mov dword [esp + 0x20], ebx
jmp 0x4e0792
cmp eax, 0xe
jne 0x4e067e
mov eax, dword [ebp + 0x30]
mov ecx, dword [ebp + 0x2c]
sub eax, ebx
imul eax, dword [ebp + 4]
imul ecx, dword [ebp + 0x30]
imul eax, edi
cdq
idiv ecx
mov edx, dword [esp + 0x14]
mov ebx, dword [esi + eax*4]
mov dword [esp + 0x20], ebx
jmp 0x4e0792
cmp eax, 0xf
jne 0x4e06a9
mov eax, dword [ebp + 0x2c]
mov ecx, dword [ebp + 0x30]
sub eax, edi
imul eax, dword [ebp + 4]
imul ecx, dword [ebp + 0x2c]
imul eax, ebx
cdq
idiv ecx
mov edx, dword [esp + 0x14]
mov ebx, dword [esi + eax*4]
mov dword [esp + 0x20], ebx
jmp 0x4e0792
cmp eax, 0x10
jne 0x4e06d1
mov eax, dword [ebp + 4]
mov ecx, dword [ebp + 0x30]
imul ecx, dword [ebp + 0x2c]
imul eax, edi
imul eax, ebx
cdq
idiv ecx
mov edx, dword [esp + 0x14]
mov ebx, dword [esi + eax*4]
mov dword [esp + 0x20], ebx
jmp 0x4e0792
cmp eax, 0x11
jne 0x4e070e
mov edx, dword [ebp + 0x2c]
mov eax, edx
mov esi, dword [ebp + 0x30]
sub eax, edi
mov ecx, esi
imul eax, eax
sub ecx, ebx
imul edx, edx
imul ecx, ecx
imul esi, esi
mov ebx, dword [ebp]
add eax, ecx
imul eax, dword [ebp + 4]
add esi, edx
cdq
idiv esi
mov edx, dword [esp + 0x14]
mov ebx, dword [ebx + eax*4]
mov dword [esp + 0x20], ebx
jmp 0x4e0792
cmp eax, 0x12
jne 0x4e0727
mov ecx, dword [ebp + 0x30]
mov eax, ecx
mov esi, dword [ebp + 0x2c]
sub eax, ebx
imul edi, edi
imul eax, eax
add eax, edi
jmp 0x4e073e
cmp eax, 0x13
jne 0x4e075d
mov esi, dword [ebp + 0x2c]
mov eax, esi
mov ecx, dword [ebp + 0x30]
sub eax, edi
imul eax, eax
imul ebx, ebx
add eax, ebx
imul eax, dword [ebp + 4]
imul esi, esi
imul ecx, ecx
mov ebx, dword [ebp]
cdq
add esi, ecx
idiv esi
mov edx, dword [esp + 0x14]
mov ebx, dword [ebx + eax*4]
mov dword [esp + 0x20], ebx
jmp 0x4e0792
cmp eax, 0x14
jne 0x4e078e
mov eax, dword [ebp + 0x30]
mov ecx, dword [ebp + 0x2c]
imul edi, edi
imul ebx, ebx
imul eax, eax
imul ecx, ecx
add edi, ebx
imul edi, dword [ebp + 4]
add ecx, eax
mov eax, edi
cdq
idiv ecx
mov edx, dword [esp + 0x14]
mov ebx, dword [esi + eax*4]
mov dword [esp + 0x20], ebx
jmp 0x4e0792
mov ebx, dword [esp + 0x20]
mov ecx, dword [ebp + 0x10]
test ecx, ecx
je 0x4e0857
push dword [esp + 0x18]
push edx
call fcn.004dddaa
mov ecx, eax
mov eax, ebx
sar eax, 0x18
movzx edx, al
mov dword [esp + 0x50], ecx
mov dword [esp + 0x54], edx
test al, al
je 0x4e0859
mov eax, ecx
movzx ebp, cl
sar eax, 8
movzx esi, al
mov eax, ecx
sar eax, 0x10
movzx edi, al
mov eax, ebx
sar eax, 8
movzx ecx, al
mov eax, 0x80808081
sub ecx, esi
imul ecx, edx
imul ecx
mov eax, dword [esp + 0x20]
sar eax, 0x10
add edx, ecx
movzx ecx, al
mov eax, 0x80808081
sar edx, 7
sub ecx, edi
imul ecx, dword [esp + 0x54]
mov ebx, edx
shr ebx, 0x1f
add ebx, edx
add ebx, esi
shl ebx, 8
imul ecx
add edx, ecx
sar edx, 7
mov eax, edx
shr eax, 0x1f
add eax, edx
add eax, edi
shl eax, 0x10
or ebx, eax
mov eax, dword [esp + 0x20]
movzx ecx, al
mov eax, 0x80808081
sub ecx, ebp
imul ecx, dword [esp + 0x54]
imul ecx
add edx, ecx
mov ecx, dword [esp + 0x50]
sar edx, 7
and ecx, 0xff000000
mov eax, edx
shr eax, 0x1f
add eax, edx
add eax, ebp
or ebx, eax
or ecx, ebx
jmp 0x4e0859
mov ecx, ebx
mov edx, ecx
mov ecx, dword [esp + 0x3c]
push 0x32
call fcn.004ddccf
add esp, 4
mov ecx, eax
jmp 0x4e153e
mov ebx, dword [esp + 0x18]
mov ebp, edx
sub ebp, eax
sub ebx, ecx
mov dword [esp + 0x54], ebp
mov dword [esp + 0x50], ebx
test edi, edi
jne 0x4e088d
xor edx, edx
jmp 0x4e0d05
mov eax, dword [esi + 0x20]
test eax, eax
jne 0x4e089f
mov ebx, dword [edi]
mov dword [esp + 0x20], ebx
jmp 0x4e0c3c
cmp eax, 1
jne 0x4e08be
mov eax, dword [esi + 4]
imul eax, ebx
cdq
idiv dword [esi + 0x30]
mov edx, dword [esp + 0x14]
mov ebx, dword [edi + eax*4]
mov dword [esp + 0x20], ebx
jmp 0x4e0c3c
cmp eax, 2
jne 0x4e08e0
mov eax, dword [esi + 0x30]
sub eax, ebx
imul eax, dword [esi + 4]
cdq
idiv dword [esi + 0x30]
mov edx, dword [esp + 0x14]
mov ebx, dword [edi + eax*4]
mov dword [esp + 0x20], ebx
jmp 0x4e0c3c
cmp eax, 3
jne 0x4e08ff
mov eax, dword [esi + 4]
imul eax, ebp
cdq
idiv dword [esi + 0x2c]
mov edx, dword [esp + 0x14]
mov ebx, dword [edi + eax*4]
mov dword [esp + 0x20], ebx
jmp 0x4e0c3c
cmp eax, 4
jne 0x4e0921
mov eax, dword [esi + 0x2c]
sub eax, ebp
imul eax, dword [esi + 4]
cdq
idiv dword [esi + 0x2c]
mov edx, dword [esp + 0x14]
mov ebx, dword [edi + eax*4]
mov dword [esp + 0x20], ebx
jmp 0x4e0c3c
cmp eax, 5
jne 0x4e0949
imul ebx, dword [esi + 4]
imul ebp, dword [esi + 4]
imul eax, ebx, 0x3e8
cdq
idiv dword [esi + 0x30]
mov edi, eax
imul eax, ebp, 0x3e8
cdq
idiv dword [esi + 0x2c]
jmp 0x4e0a62
cmp eax, 6
jne 0x4e096e
mov ecx, dword [esi + 0x30]
lea eax, [ebx + ebp]
imul eax, dword [esi + 4]
add ecx, dword [esi + 0x2c]
cdq
idiv ecx
mov edx, dword [esp + 0x14]
mov ebx, dword [edi + eax*4]
mov dword [esp + 0x20], ebx
jmp 0x4e0c3c
cmp eax, 7
jne 0x4e09a6
imul ebx, dword [esi + 4]
mov ecx, dword [esi + 0x2c]
sub ecx, dword [esp + 0x54]
imul ecx, dword [esi + 4]
imul eax, ebx, 0x3e8
cdq
idiv dword [esi + 0x30]
mov ebx, eax
imul eax, ecx, 0x3e8
cdq
idiv dword [esi + 0x2c]
add ebx, eax
mov eax, 0x10624dd3
imul ebx
jmp 0x4e0a6b
cmp eax, 8
jne 0x4e09cf
mov edx, dword [esi + 0x2c]
sub ebx, ebp
mov ecx, dword [esi + 0x30]
add ecx, edx
lea eax, [edx + ebx]
imul eax, dword [esi + 4]
cdq
idiv ecx
mov edx, dword [esp + 0x14]
mov ebx, dword [edi + eax*4]
mov dword [esp + 0x20], ebx
jmp 0x4e0c3c
cmp eax, 9
jne 0x4e0a08
mov edx, dword [esp + 0x54]
imul edx, dword [esi + 4]
mov ecx, dword [esi + 0x30]
sub ecx, dword [esp + 0x50]
imul ecx, dword [esi + 4]
imul eax, edx, 0x3e8
cdq
idiv dword [esi + 0x2c]
mov ebx, eax
imul eax, ecx, 0x3e8
cdq
idiv dword [esi + 0x30]
add ebx, eax
mov eax, 0x10624dd3
imul ebx
jmp 0x4e0a6b
cmp eax, 0xa
jne 0x4e0a31
mov edx, dword [esi + 0x30]
sub ebp, ebx
mov ecx, dword [esi + 0x2c]
add ecx, edx
lea eax, [edx + ebp]
imul eax, dword [esi + 4]
cdq
idiv ecx
mov edx, dword [esp + 0x14]
mov ebx, dword [edi + eax*4]
mov dword [esp + 0x20], ebx
jmp 0x4e0c3c
cmp eax, 0xb
jne 0x4e0a87
mov eax, dword [esi + 0x2c]
sub eax, dword [esp + 0x54]
imul eax, dword [esi + 4]
mov ecx, dword [esi + 0x30]
sub ecx, dword [esp + 0x50]
imul ecx, dword [esi + 4]
imul eax, eax, 0x3e8
cdq
idiv dword [esi + 0x2c]
mov edi, eax
imul eax, ecx, 0x3e8
cdq
idiv dword [esi + 0x30]
add edi, eax
mov eax, 0x10624dd3
imul edi
mov ebx, dword [esi]
sar edx, 7
mov eax, edx
shr eax, 0x1f
add eax, edx
mov edx, dword [esp + 0x14]
mov ebx, dword [ebx + eax*4]
mov dword [esp + 0x20], ebx
jmp 0x4e0c3c
cmp eax, 0xc
jne 0x4e0ab2
mov ecx, dword [esi + 0x2c]
mov eax, ecx
add ecx, dword [esi + 0x30]
sub eax, ebx
sub eax, ebp
add eax, dword [esi + 0x30]
imul eax, dword [esi + 4]
cdq
idiv ecx
mov edx, dword [esp + 0x14]
mov ebx, dword [edi + eax*4]
mov dword [esp + 0x20], ebx
jmp 0x4e0c3c
cmp eax, 0xd
jne 0x4e0ae3
mov edi, dword [esi + 0x2c]
mov eax, edi
mov ecx, dword [esi + 0x30]
sub eax, ebp
imul edi, dword [esi + 0x30]
sub ecx, ebx
imul eax, ecx
mov ebx, dword [esi]
imul eax, dword [esi + 4]
cdq
idiv edi
mov edx, dword [esp + 0x14]
mov ebx, dword [ebx + eax*4]
mov dword [esp + 0x20], ebx
jmp 0x4e0c3c
cmp eax, 0xe
jne 0x4e0b0e
mov eax, dword [esi + 0x30]
mov ecx, dword [esi + 0x2c]
sub eax, ebx
imul eax, dword [esi + 4]
imul ecx, dword [esi + 0x30]
imul eax, ebp
cdq
idiv ecx
mov edx, dword [esp + 0x14]
mov ebx, dword [edi + eax*4]
mov dword [esp + 0x20], ebx
jmp 0x4e0c3c
cmp eax, 0xf
jne 0x4e0b39
mov eax, dword [esi + 0x2c]
mov ecx, dword [esi + 0x30]
sub eax, ebp
imul eax, dword [esi + 4]
imul ecx, dword [esi + 0x2c]
imul eax, ebx
cdq
idiv ecx
mov edx, dword [esp + 0x14]
mov ebx, dword [edi + eax*4]
mov dword [esp + 0x20], ebx
jmp 0x4e0c3c
cmp eax, 0x10
jne 0x4e0b61
mov eax, dword [esi + 4]
mov ecx, dword [esi + 0x30]
imul ecx, dword [esi + 0x2c]
imul eax, ebx
imul eax, ebp
cdq
idiv ecx
mov edx, dword [esp + 0x14]
mov ebx, dword [edi + eax*4]
mov dword [esp + 0x20], ebx
jmp 0x4e0c3c
cmp eax, 0x11
jne 0x4e0b9d
mov edx, dword [esi + 0x30]
mov eax, edx
mov edi, dword [esi + 0x2c]
sub eax, ebx
mov ecx, edi
imul eax, eax
sub ecx, ebp
imul edx, edx
imul ecx, ecx
imul edi, edi
mov ebx, dword [esi]
add eax, ecx
imul eax, dword [esi + 4]
add edi, edx
cdq
idiv edi
mov edx, dword [esp + 0x14]
mov ebx, dword [ebx + eax*4]
mov dword [esp + 0x20], ebx
jmp 0x4e0c3c
cmp eax, 0x12
jne 0x4e0bd2
mov ecx, dword [esi + 0x30]
mov eax, ecx
mov edi, dword [esi + 0x2c]
sub eax, ebx
imul eax, eax
imul ebp, ebp
imul edi, edi
imul ecx, ecx
mov ebx, dword [esi]
add eax, ebp
imul eax, dword [esi + 4]
add edi, ecx
cdq
idiv edi
mov edx, dword [esp + 0x14]
mov ebx, dword [ebx + eax*4]
mov dword [esp + 0x20], ebx
jmp 0x4e0c3c
cmp eax, 0x13
jne 0x4e0c07
mov edi, dword [esi + 0x2c]
mov eax, edi
mov ecx, dword [esi + 0x30]
sub eax, ebp
imul eax, eax
imul ebx, ebx
imul edi, edi
imul ecx, ecx
add eax, ebx
mov ebx, dword [esi]
imul eax, dword [esi + 4]
add edi, ecx
cdq
idiv edi
mov edx, dword [esp + 0x14]
mov ebx, dword [ebx + eax*4]
mov dword [esp + 0x20], ebx
jmp 0x4e0c3c
cmp eax, 0x14
jne 0x4e0c38
mov eax, dword [esi + 0x30]
mov ecx, dword [esi + 0x2c]
imul ebx, ebx
imul ebp, ebp
imul eax, eax
imul ecx, ecx
add ebx, ebp
imul ebx, dword [esi + 4]
add ecx, eax
mov eax, ebx
cdq
idiv ecx
mov edx, dword [esp + 0x14]
mov ebx, dword [edi + eax*4]
mov dword [esp + 0x20], ebx
jmp 0x4e0c3c
mov ebx, dword [esp + 0x20]
mov ecx, dword [esi + 0x10]
test ecx, ecx
je 0x4e0d03
push dword [esp + 0x18]
push edx
call fcn.004dddaa
mov ecx, ebx
mov edx, eax
sar ecx, 0x18
movzx eax, cl
mov dword [esp + 0x44], edx
mov dword [esp + 0x54], eax
test cl, cl
je 0x4e0d09
mov eax, edx
movzx ebp, dl
sar eax, 8
movzx esi, al
mov eax, edx
sar eax, 0x10
movzx edi, al
mov eax, ebx
sar eax, 8
movzx ecx, al
mov eax, 0x80808081
sub ecx, esi
imul ecx, dword [esp + 0x54]
imul ecx
mov eax, dword [esp + 0x20]
sar eax, 0x10
add edx, ecx
movzx ecx, al
mov eax, 0x80808081
sar edx, 7
sub ecx, edi
imul ecx, dword [esp + 0x54]
mov ebx, edx
shr ebx, 0x1f
add ebx, edx
add ebx, esi
shl ebx, 8
imul ecx
add edx, ecx
sar edx, 7
mov eax, edx
shr eax, 0x1f
add eax, edx
add eax, edi
shl eax, 0x10
or ebx, eax
mov eax, dword [esp + 0x20]
movzx ecx, al
mov eax, 0x80808081
sub ecx, ebp
imul ecx, dword [esp + 0x54]
imul ecx
add edx, ecx
sar edx, 7
mov eax, edx
shr eax, 0x1f
add eax, edx
mov edx, dword [esp + 0x44]
add eax, ebp
and edx, 0xff000000
or ebx, eax
or edx, ebx
jmp 0x4e0d05
mov edx, ebx
mov dword [esp + 0x44], edx
mov eax, edx
sar eax, 0x18
movzx eax, al
mov ecx, eax
shl ecx, 4
sub ecx, eax
mov eax, 0x51eb851f
add ecx, ecx
imul ecx
mov eax, dword [esp + 0x44]
sar edx, 5
and eax, 0xffffff
mov ecx, edx
shr ecx, 0x1f
add ecx, edx
shl ecx, 0x18
or ecx, eax
jmp 0x4e153e
test ebp, ebp
je 0x4e1673
mov edx, dword [esp + 0x14]
mov ebx, edx
mov edi, dword [esp + 0x18]
sub ebx, dword [ebp + 0x24]
sub edi, dword [ebp + 0x28]
mov esi, dword [ebp]
mov dword [esp + 0x54], ebx
mov dword [esp + 0x50], edi
mov dword [esp + 0x20], 0
test esi, esi
jne 0x4e0d71
xor edx, edx
jmp 0x4e0d05
mov eax, dword [ebp + 0x20]
test eax, eax
jne 0x4e0d86
mov ebx, dword [esi]
mov ecx, dword [ebp + 0x10]
mov dword [esp + 0x20], ebx
jmp 0x4e0c3f
cmp eax, 1
jne 0x4e0da8
mov eax, dword [ebp + 4]
imul eax, edi
mov ecx, dword [ebp + 0x10]
cdq
idiv dword [ebp + 0x30]
mov edx, dword [esp + 0x14]
mov ebx, dword [esi + eax*4]
mov dword [esp + 0x20], ebx
jmp 0x4e0c3f
cmp eax, 2
jne 0x4e0dcd
mov eax, dword [ebp + 0x30]
sub eax, edi
mov ecx, dword [ebp + 0x10]
imul eax, dword [ebp + 4]
cdq
idiv dword [ebp + 0x30]
mov edx, dword [esp + 0x14]
mov ebx, dword [esi + eax*4]
mov dword [esp + 0x20], ebx
jmp 0x4e0c3f
cmp eax, 3
jne 0x4e0def
mov eax, dword [ebp + 4]
imul eax, ebx
mov ecx, dword [ebp + 0x10]
cdq
idiv dword [ebp + 0x2c]
mov edx, dword [esp + 0x14]
mov ebx, dword [esi + eax*4]
mov dword [esp + 0x20], ebx
jmp 0x4e0c3f
cmp eax, 4
jne 0x4e0e14
mov eax, dword [ebp + 0x2c]
sub eax, ebx
mov ecx, dword [ebp + 0x10]
imul eax, dword [ebp + 4]
cdq
idiv dword [ebp + 0x2c]
mov edx, dword [esp + 0x14]
mov ebx, dword [esi + eax*4]
mov dword [esp + 0x20], ebx
jmp 0x4e0c3f
cmp eax, 5
jne 0x4e0e33
mov ecx, dword [ebp + 4]
mov eax, ecx
imul eax, edi
imul eax, eax, 0x3e8
cdq
idiv dword [ebp + 0x30]
imul ecx, ebx
jmp 0x4e0f3f
cmp eax, 6
jne 0x4e0e3d
lea eax, [edi + ebx]
jmp 0x4e0e77
cmp eax, 7
jne 0x4e0e6b
mov eax, dword [ebp + 4]
imul eax, edi
mov ecx, dword [ebp + 0x2c]
sub ecx, dword [esp + 0x54]
imul ecx, dword [ebp + 4]
imul eax, eax, 0x3e8
cdq
idiv dword [ebp + 0x30]
mov edi, eax
imul eax, ecx, 0x3e8
cdq
idiv dword [ebp + 0x2c]
jmp 0x4e0ec5
cmp eax, 8
jne 0x4e0e97
mov eax, dword [ebp + 0x2c]
sub eax, ebx
add eax, edi
imul eax, dword [ebp + 4]
mov ecx, dword [ebp + 0x30]
add ecx, dword [ebp + 0x2c]
cdq
idiv ecx
mov edx, dword [esp + 0x14]
mov ecx, dword [ebp + 0x10]
mov ebx, dword [esi + eax*4]
mov dword [esp + 0x20], ebx
jmp 0x4e0c3f
cmp eax, 9
jne 0x4e0eee
mov eax, dword [ebp + 4]
imul eax, dword [esp + 0x54]
mov ecx, dword [ebp + 0x30]
sub ecx, dword [esp + 0x50]
imul ecx, dword [ebp + 4]
imul eax, eax, 0x3e8
cdq
idiv dword [ebp + 0x2c]
mov edi, eax
imul eax, ecx, 0x3e8
cdq
idiv dword [ebp + 0x30]
mov ebx, dword [ebp]
add edi, eax
mov ecx, dword [ebp + 0x10]
mov eax, 0x10624dd3
imul edi
sar edx, 7
mov eax, edx
shr eax, 0x1f
add eax, edx
mov edx, dword [esp + 0x14]
mov ebx, dword [ebx + eax*4]
mov dword [esp + 0x20], ebx
jmp 0x4e0c3f
cmp eax, 0xa
jne 0x4e0f1a
mov eax, dword [ebp + 0x30]
mov ecx, dword [ebp + 0x2c]
sub eax, edi
add ecx, dword [ebp + 0x30]
add eax, ebx
imul eax, dword [ebp + 4]
cdq
idiv ecx
mov edx, dword [esp + 0x14]
mov ecx, dword [ebp + 0x10]
mov ebx, dword [esi + eax*4]
mov dword [esp + 0x20], ebx
jmp 0x4e0c3f
cmp eax, 0xb
jne 0x4e0f74
mov eax, dword [ebp + 0x30]
sub eax, dword [esp + 0x50]
imul eax, dword [ebp + 4]
mov ecx, dword [ebp + 0x2c]
sub ecx, dword [esp + 0x54]
imul eax, eax, 0x3e8
cdq
idiv dword [ebp + 0x30]
imul ecx, dword [ebp + 4]
mov esi, eax
mov ebx, dword [ebp]
imul eax, ecx, 0x3e8
mov ecx, dword [ebp + 0x10]
cdq
idiv dword [ebp + 0x2c]
add esi, eax
mov eax, 0x10624dd3
imul esi
sar edx, 7
mov eax, edx
shr eax, 0x1f
add eax, edx
mov edx, dword [esp + 0x14]
mov ebx, dword [ebx + eax*4]
mov dword [esp + 0x20], ebx
jmp 0x4e0c3f
cmp eax, 0xc
jne 0x4e0fa2
mov ecx, dword [ebp + 0x2c]
mov eax, ecx
add ecx, dword [ebp + 0x30]
sub eax, edi
sub eax, ebx
add eax, dword [ebp + 0x30]
imul eax, dword [ebp + 4]
cdq
idiv ecx
mov edx, dword [esp + 0x14]
mov ecx, dword [ebp + 0x10]
mov ebx, dword [esi + eax*4]
mov dword [esp + 0x20], ebx
jmp 0x4e0c3f
cmp eax, 0xd
jne 0x4e0fd7
mov esi, dword [ebp + 0x2c]
mov ecx, esi
mov eax, dword [ebp + 0x30]
sub ecx, ebx
imul esi, dword [ebp + 0x30]
sub eax, edi
imul eax, ecx
mov ebx, dword [ebp]
mov ecx, dword [ebp + 0x10]
imul eax, dword [ebp + 4]
cdq
idiv esi
mov edx, dword [esp + 0x14]
mov ebx, dword [ebx + eax*4]
mov dword [esp + 0x20], ebx
jmp 0x4e0c3f
cmp eax, 0xe
jne 0x4e1005
mov eax, dword [ebp + 0x30]
mov ecx, dword [ebp + 0x2c]
sub eax, edi
imul eax, dword [ebp + 4]
imul ecx, dword [ebp + 0x30]
imul eax, ebx
cdq
idiv ecx
mov edx, dword [esp + 0x14]
mov ecx, dword [ebp + 0x10]
mov ebx, dword [esi + eax*4]
mov dword [esp + 0x20], ebx
jmp 0x4e0c3f
cmp eax, 0xf
jne 0x4e1033
mov eax, dword [ebp + 0x2c]
mov ecx, dword [ebp + 0x30]
sub eax, ebx
imul eax, dword [ebp + 4]
imul ecx, dword [ebp + 0x2c]
imul eax, edi
cdq
idiv ecx
mov edx, dword [esp + 0x14]
mov ecx, dword [ebp + 0x10]
mov ebx, dword [esi + eax*4]
mov dword [esp + 0x20], ebx
jmp 0x4e0c3f
cmp eax, 0x10
jne 0x4e105e
mov eax, dword [ebp + 4]
mov ecx, dword [ebp + 0x30]
imul ecx, dword [ebp + 0x2c]
imul eax, edi
imul eax, ebx
cdq
idiv ecx
mov edx, dword [esp + 0x14]
mov ecx, dword [ebp + 0x10]
mov ebx, dword [esi + eax*4]
mov dword [esp + 0x20], ebx
jmp 0x4e0c3f
cmp eax, 0x11
jne 0x4e109e
mov edx, dword [ebp + 0x30]
mov ecx, edx
mov esi, dword [ebp + 0x2c]
sub ecx, edi
mov eax, esi
imul ecx, ecx
sub eax, ebx
imul edx, edx
imul eax, eax
imul esi, esi
mov ebx, dword [ebp]
add eax, ecx
mov ecx, dword [ebp + 0x10]
imul eax, dword [ebp + 4]
add esi, edx
cdq
idiv esi
mov edx, dword [esp + 0x14]
mov ebx, dword [ebx + eax*4]
mov dword [esp + 0x20], ebx
jmp 0x4e0c3f
cmp eax, 0x12
jne 0x4e10b7
mov ecx, dword [ebp + 0x30]
mov eax, ecx
mov esi, dword [ebp + 0x2c]
sub eax, edi
imul eax, eax
imul ebx, ebx
add eax, ebx
jmp 0x4e10ce
cmp eax, 0x13
jne 0x4e10f3
mov esi, dword [ebp + 0x2c]
mov eax, esi
sub eax, ebx
imul edi, edi
imul eax, eax
add eax, edi
mov ecx, dword [ebp + 0x30]
imul eax, dword [ebp + 4]
imul ecx, ecx
imul esi, esi
mov ebx, dword [ebp]
cdq
add esi, ecx
mov ecx, dword [ebp + 0x10]
idiv esi
mov edx, dword [esp + 0x14]
mov ebx, dword [ebx + eax*4]
mov dword [esp + 0x20], ebx
jmp 0x4e0c3f
cmp eax, 0x14
jne 0x4e1106
mov esi, dword [ebp + 0x2c]
imul edi, edi
imul ebx, ebx
lea eax, [ebx + edi]
jmp 0x4e10cb
mov ebx, dword [esp + 0x20]
mov ecx, dword [ebp + 0x10]
jmp 0x4e0c3f
mov ebx, dword [esp + 0x14]
mov esi, dword [esp + 0x24]
test ebp, ebp
je 0x4e167b
mov esi, dword [ebp]
mov edi, ebx
sub edi, dword [ebp + 0x24]
mov ebx, eax
sub ebx, dword [ebp + 0x28]
mov dword [esp + 0x50], edi
mov dword [esp + 0x54], ebx
mov dword [esp + 0x20], 0
test esi, esi
jne 0x4e114a
xor ecx, ecx
jmp 0x4e153e
mov eax, dword [ebp + 0x20]
test eax, eax
jne 0x4e115c
mov ebx, dword [esi]
mov dword [esp + 0x20], ebx
jmp 0x4e1474
cmp eax, 1
jne 0x4e1177
mov eax, dword [ebp + 4]
imul eax, ebx
cdq
idiv dword [ebp + 0x30]
mov ebx, dword [esi + eax*4]
mov dword [esp + 0x20], ebx
jmp 0x4e1474
cmp eax, 2
jne 0x4e1195
mov eax, dword [ebp + 0x30]
sub eax, ebx
imul eax, dword [ebp + 4]
cdq
idiv dword [ebp + 0x30]
mov ebx, dword [esi + eax*4]
mov dword [esp + 0x20], ebx
jmp 0x4e1474
cmp eax, 3
jne 0x4e11b0
mov eax, dword [ebp + 4]
imul eax, edi
cdq
idiv dword [ebp + 0x2c]
mov ebx, dword [esi + eax*4]
mov dword [esp + 0x20], ebx
jmp 0x4e1474
cmp eax, 4
jne 0x4e11ce
mov eax, dword [ebp + 0x2c]
sub eax, edi
imul eax, dword [ebp + 4]
cdq
idiv dword [ebp + 0x2c]
mov ebx, dword [esi + eax*4]
mov dword [esp + 0x20], ebx
jmp 0x4e1474
cmp eax, 5
jne 0x4e11ed
mov ecx, dword [ebp + 4]
mov eax, ecx
imul eax, edi
imul eax, eax, 0x3e8
cdq
idiv dword [ebp + 0x2c]
imul ecx, ebx
jmp 0x4e12e4
cmp eax, 6
jne 0x4e11f7
lea eax, [edi + ebx]
jmp 0x4e1233
cmp eax, 7
jne 0x4e1227
mov eax, dword [ebp + 4]
imul eax, dword [esp + 0x54]
mov ecx, dword [ebp + 0x2c]
sub ecx, dword [esp + 0x50]
imul ecx, dword [ebp + 4]
imul eax, eax, 0x3e8
cdq
idiv dword [ebp + 0x30]
mov edi, eax
imul eax, ecx, 0x3e8
cdq
idiv dword [ebp + 0x2c]
jmp 0x4e1278
cmp eax, 8
jne 0x4e124c
mov eax, dword [ebp + 0x2c]
sub eax, edi
add eax, ebx
imul eax, dword [ebp + 4]
mov ecx, dword [ebp + 0x30]
add ecx, dword [ebp + 0x2c]
cdq
idiv ecx
mov ebx, dword [esi + eax*4]
mov dword [esp + 0x20], ebx
jmp 0x4e1474
cmp eax, 9
jne 0x4e129a
mov eax, dword [ebp + 4]
imul eax, edi
mov ecx, dword [ebp + 0x30]
sub ecx, dword [esp + 0x54]
imul ecx, dword [ebp + 4]
imul eax, eax, 0x3e8
cdq
idiv dword [ebp + 0x2c]
mov edi, eax
imul eax, ecx, 0x3e8
cdq
idiv dword [ebp + 0x30]
mov ebx, dword [ebp]
add edi, eax
mov eax, 0x10624dd3
imul edi
sar edx, 7
mov eax, edx
shr eax, 0x1f
add eax, edx
mov ebx, dword [ebx + eax*4]
mov dword [esp + 0x20], ebx
jmp 0x4e1474
cmp eax, 0xa
jne 0x4e12bf
mov eax, dword [ebp + 0x30]
mov ecx, dword [ebp + 0x2c]
sub eax, ebx
add ecx, dword [ebp + 0x30]
add eax, edi
imul eax, dword [ebp + 4]
cdq
idiv ecx
mov ebx, dword [esi + eax*4]
mov dword [esp + 0x20], ebx
jmp 0x4e1474
cmp eax, 0xb
jne 0x4e1312
mov eax, dword [ebp + 0x2c]
sub eax, dword [esp + 0x50]
imul eax, dword [ebp + 4]
mov ecx, dword [ebp + 0x30]
sub ecx, dword [esp + 0x54]
imul eax, eax, 0x3e8
cdq
idiv dword [ebp + 0x2c]
imul ecx, dword [ebp + 4]
mov esi, eax
mov ebx, dword [ebp]
imul eax, ecx, 0x3e8
cdq
idiv dword [ebp + 0x30]
add esi, eax
mov eax, 0x10624dd3
imul esi
sar edx, 7
mov eax, edx
shr eax, 0x1f
add eax, edx
mov ebx, dword [ebx + eax*4]
mov dword [esp + 0x20], ebx
jmp 0x4e1474
cmp eax, 0xc
jne 0x4e1339
mov ecx, dword [ebp + 0x2c]
mov eax, ecx
add ecx, dword [ebp + 0x30]
sub eax, edi
sub eax, ebx
add eax, dword [ebp + 0x30]
imul eax, dword [ebp + 4]
cdq
idiv ecx
mov ebx, dword [esi + eax*4]
mov dword [esp + 0x20], ebx
jmp 0x4e1474
cmp eax, 0xd
jne 0x4e1367
mov esi, dword [ebp + 0x2c]
mov eax, esi
mov ecx, dword [ebp + 0x30]
sub eax, edi
imul esi, dword [ebp + 0x30]
sub ecx, ebx
imul eax, ecx
mov ebx, dword [ebp]
imul eax, dword [ebp + 4]
cdq
idiv esi
mov ebx, dword [ebx + eax*4]
mov dword [esp + 0x20], ebx
jmp 0x4e1474
cmp eax, 0xe
jne 0x4e138e
mov eax, dword [ebp + 0x30]
mov ecx, dword [ebp + 0x2c]
sub eax, ebx
imul eax, dword [ebp + 4]
imul ecx, dword [ebp + 0x30]
imul eax, edi
cdq
idiv ecx
mov ebx, dword [esi + eax*4]
mov dword [esp + 0x20], ebx
jmp 0x4e1474
cmp eax, 0xf
jne 0x4e13b5
mov eax, dword [ebp + 0x2c]
mov ecx, dword [ebp + 0x30]
sub eax, edi
imul eax, dword [ebp + 4]
imul ecx, dword [ebp + 0x2c]
imul eax, ebx
cdq
idiv ecx
mov ebx, dword [esi + eax*4]
mov dword [esp + 0x20], ebx
jmp 0x4e1474
cmp eax, 0x10
jne 0x4e13d9
mov eax, dword [ebp + 4]
mov ecx, dword [ebp + 0x30]
imul ecx, dword [ebp + 0x2c]
imul eax, edi
imul eax, ebx
cdq
idiv ecx
mov ebx, dword [esi + eax*4]
mov dword [esp + 0x20], ebx
jmp 0x4e1474
cmp eax, 0x11
jne 0x4e13f6
mov esi, dword [ebp + 0x2c]
mov eax, esi
mov edx, dword [ebp + 0x30]
sub eax, edi
mov ecx, edx
imul eax, eax
sub ecx, ebx
imul ecx, ecx
add eax, ecx
jmp 0x4e1428
cmp eax, 0x12
jne 0x4e1410
mov edx, dword [ebp + 0x30]
mov ecx, edx
mov esi, dword [ebp + 0x2c]
sub ecx, ebx
imul edi, edi
imul ecx, ecx
lea eax, [ecx + edi]
jmp 0x4e1428
cmp eax, 0x13
jne 0x4e1443
mov esi, dword [ebp + 0x2c]
mov ecx, esi
mov edx, dword [ebp + 0x30]
sub ecx, edi
imul ebx, ebx
imul ecx, ecx
lea eax, [ecx + ebx]
imul eax, dword [ebp + 4]
imul edx, edx
imul esi, esi
mov ebx, dword [ebp]
add esi, edx
cdq
idiv esi
mov ebx, dword [ebx + eax*4]
mov dword [esp + 0x20], ebx
jmp 0x4e1474
cmp eax, 0x14
jne 0x4e1470
mov eax, dword [ebp + 0x30]
mov ecx, dword [ebp + 0x2c]
imul edi, edi
imul ebx, ebx
imul eax, eax
imul ecx, ecx
add edi, ebx
imul edi, dword [ebp + 4]
add ecx, eax
mov eax, edi
cdq
idiv ecx
mov ebx, dword [esi + eax*4]
mov dword [esp + 0x20], ebx
jmp 0x4e1474
mov ebx, dword [esp + 0x20]
mov ecx, dword [ebp + 0x10]
test ecx, ecx
je 0x4e153c
push dword [esp + 0x18]
push dword [esp + 0x18]
call fcn.004dddaa
mov ecx, eax
mov eax, ebx
sar eax, 0x18
movzx edx, al
mov dword [esp + 0x1c], ecx
mov dword [esp + 0x54], edx
test al, al
je 0x4e1542
mov eax, ecx
movzx ebp, cl
sar eax, 8
movzx esi, al
mov eax, ecx
sar eax, 0x10
movzx edi, al
mov eax, ebx
sar eax, 8
movzx ecx, al
mov eax, 0x80808081
sub ecx, esi
imul ecx, edx
imul ecx
mov eax, dword [esp + 0x20]
sar eax, 0x10
add edx, ecx
movzx ecx, al
mov eax, 0x80808081
sar edx, 7
sub ecx, edi
imul ecx, dword [esp + 0x54]
mov ebx, edx
shr ebx, 0x1f
add ebx, edx
add ebx, esi
shl ebx, 8
imul ecx
add edx, ecx
sar edx, 7
mov eax, edx
shr eax, 0x1f
add eax, edx
add eax, edi
shl eax, 0x10
or ebx, eax
mov eax, dword [esp + 0x20]
movzx ecx, al
mov eax, 0x80808081
sub ecx, ebp
imul ecx, dword [esp + 0x54]
imul ecx
add edx, ecx
mov ecx, dword [esp + 0x1c]
sar edx, 7
and ecx, 0xff000000
mov eax, edx
shr eax, 0x1f
add eax, edx
add eax, ebp
or ebx, eax
or ecx, ebx
jmp 0x4e153e
mov ecx, ebx
mov dword [esp + 0x1c], ecx
test ecx, ecx
je 0x4e1673
mov eax, ecx
sar eax, 0x18
cmp al, 0xff
je 0x4e1668
mov edx, dword [esp + 0x38]
mov ebx, dword [esp + 0x48]
mov ebx, dword [ebx + edx*4]
mov edx, ebx
sar edx, 0x18
test dl, dl
je 0x4e1668
movzx esi, al
mov ebp, 0xff
movzx edi, dl
sub ebp, esi
mov eax, ebx
mov dword [esp + 0x54], esi
sar eax, 8
movzx ecx, al
mov eax, 0x81018203
imul ecx, ebp
imul ecx, edi
imul ecx
mov eax, dword [esp + 0x1c]
add edx, ecx
sar eax, 8
movzx ecx, al
mov eax, 0x80808081
imul ecx, esi
sar edx, 0xf
mov ebx, edx
shr ebx, 0x1f
add ebx, edx
mul ecx
mov ecx, dword [esp + 0x48]
mov eax, dword [esp + 0x38]
shr edx, 7
add ebx, edx
shl ebx, 8
mov eax, dword [ecx + eax*4]
sar eax, 0x10
movzx ecx, al
mov eax, 0x81018203
imul ecx, ebp
imul ecx, edi
imul ecx
mov eax, dword [esp + 0x1c]
add edx, ecx
sar eax, 0x10
movzx ecx, al
mov eax, 0x80808081
imul ecx, dword [esp + 0x54]
sar edx, 0xf
mov esi, edx
shr esi, 0x1f
add esi, edx
mul ecx
mov ecx, dword [esp + 0x48]
shr edx, 7
add esi, edx
mov edx, dword [esp + 0x38]
shl esi, 0x10
or ebx, esi
mov eax, dword [ecx + edx*4]
movzx ecx, al
mov eax, 0x81018203
imul ecx, ebp
imul ebp, edi
imul ecx, edi
imul ecx
mov eax, dword [esp + 0x1c]
add edx, ecx
movzx ecx, al
imul ecx, dword [esp + 0x54]
mov eax, 0x80808081
sar edx, 0xf
mov esi, edx
shr esi, 0x1f
add esi, edx
mul ecx
mov eax, 0x80808081
shr edx, 7
lea ecx, [edx + esi]
imul ebp
or ecx, ebx
add edx, ebp
sar edx, 7
mov eax, edx
shr eax, 0x1f
add eax, edx
add eax, dword [esp + 0x54]
shl eax, 0x18
or ecx, eax
mov eax, dword [esp + 0x38]
mov edx, dword [esp + 0x48]
mov dword [edx + eax*4], ecx
mov esi, dword [esp + 0x24]
mov ebx, dword [esp + 0x14]
inc dword [esp + 0x38]
inc ebx
mov edi, dword [esp + 0x34]
mov dword [esp + 0x14], ebx
cmp ebx, dword [esp + 0x28]
jl 0x4dea4d
mov ecx, dword [esp + 0x18]
mov edx, dword [esp + 0x38]
mov eax, dword [esp + 0x60]
sub eax, dword [esp + 0x28]
inc ecx
add eax, dword [esp + 0x4c]
mov edi, dword [esp + 0x34]
add edx, eax
mov dword [esp + 0x38], edx
mov dword [esp + 0x18], ecx
cmp ecx, dword [esp + 0x30]
jl 0x4dea39
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x68
ret