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

Disassembly:
push ebp
mov ebp, esp
and esp, 0xffffffc0
sub esp, 0x1b4
mov eax, dword [0x5ff004]
xor eax, esp
mov dword [esp + 0x1b0], eax
mov eax, dword [ebp + 0xc]
push ebx
push esi
push edi
mov edi, ecx
mov dword [esp + 0x30], edi
mov ebx, dword [edi + 8]
imul edx, ebx
mov dword [esp + 0x2c], ebx
lea esi, [eax + edx*2]
mov edx, dword [edi + 0xc]
mov dword [esp + 0x1c], esi
cmp edx, 0x83
ja case.default.0x466ca6
jmp dword [edx*4 + 0x46cb6c]
imul ebx, dword [ebp + 8]
add ebx, ebx
push ebx
push 0
push esi
call fcn.00504370
add esp, 0xc
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0x1b0]
xor ecx, esp
call fcn.00502eb4
mov esp, ebp
pop ebp
ret
mov dword [esp + 0x14], 0
test ebx, ebx
jle case.default.0x466ca6
xor edx, edx
mov dword [esp + 0x24], edx
lea ebx, [ebx]
push dword [edi + 0x188]
mov ecx, dword [edi + 0x190]
push dword [edi + 0xc]
add ecx, edx
mov edx, esi
push dword [edi + 0x24]
push dword [ebp + 8]
push dword [edi + 0x154]
push ebx
call fcn.004f0650
mov eax, dword [esp + 0x2c]
add esp, 0x18
mov edx, dword [esp + 0x24]
inc eax
mov ebx, dword [edi + 8]
add edx, 0x30c
add esi, 2
mov dword [esp + 0x14], eax
mov dword [esp + 0x24], edx
cmp eax, ebx
jl 0x466cf0
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0x1b0]
xor ecx, esp
call fcn.00502eb4
mov esp, ebp
pop ebp
ret
mov dword [esp + 0x24], 0
test ebx, ebx
jle case.default.0x466ca6
xor esi, esi
mov dword [esp + 0x4c], esi
jmp 0x466d70
mov edx, dword [edi + 0x190]
mov ecx, dword [edi + 0x154]
add edx, esi
mov dword [esp + 0x2c], edx
mov esi, ecx
push 8
mov dword [esp + 0x48], 0
movsx eax, word [edx + 0x2b4]
mov dword [esp + 0x18], eax
movsx eax, word [edx + 0x2b8]
mov dword [esp + 0x3c], eax
mov eax, 0x24924925
mul ecx
mov eax, ecx
mov dword [esp + 0x4c], 0
sub esi, edx
mov ecx, 0xe
shr esi, 1
add esi, edx
xor edx, edx
div ecx
mov eax, dword [esp + 0x30]
shr esi, 3
mov dword [esp + 0x1c], edx
mov ecx, dword [eax]
mov eax, dword [eax + 8]
lea eax, [eax + esi*8]
cdq
push edx
push eax
lea eax, [esp + 0x50]
push eax
mov eax, dword [ecx]
push ecx
call eax
movzx eax, byte [esp + 0x58]
add esp, 0x14
mov edx, dword [esp + 0x2c]
mov ecx, eax
shr eax, 4
and ecx, 0xf
mov dword [esp + 0xc], ecx
movsx ecx, word [edx + eax*4 + 0x14]
movsx eax, word [edx + eax*4 + 0x16]
mov dword [esp + 0x10], eax
mov eax, dword [ebp + 8]
mov dword [esp + 0x20], ecx
mov ecx, dword [esp + 0x18]
add eax, ecx
mov dword [esp + 0x34], eax
cmp ecx, eax
jge 0x466ebf
mov esi, dword [esp + 0x1c]
lea eax, [ebx + ebx]
mov ebx, dword [esp + 0x14]
mov edi, dword [esp + 0x38]
mov dword [esp + 0x28], eax
mov eax, ecx
test eax, eax
jns 0x466e3f
add eax, 1
sar eax, 1
movzx edx, byte [esp + eax + 0x45]
test cl, 1
je 0x466e50
and edx, 0xf
jmp 0x466e53
shr edx, 4
mov edx, dword [edx*4 + 0x52eb68]
mov eax, dword [esp + 0x10]
mov ecx, dword [esp + 0xc]
imul eax, edi
shl edx, cl
shl edx, 0xb
add edx, eax
mov eax, dword [esp + 0x20]
imul eax, ebx
add eax, 0x400
add eax, edx
sar eax, 0xb
cmp eax, 0x7fff
jle 0x466e8b
mov eax, 0x7fff
jmp 0x466e97
cmp eax, 0xffff8000
jge 0x466e97
mov eax, 0xffff8000
mov ecx, dword [esp + 0x18]
mov edi, ebx
inc ecx
mov word [esi], ax
add esi, dword [esp + 0x28]
mov ebx, eax
mov dword [esp + 0x18], ecx
cmp ecx, dword [esp + 0x34]
jl 0x466e36
mov edx, dword [esp + 0x2c]
mov dword [esp + 0x38], edi
mov edi, dword [esp + 0x30]
jmp 0x466ec3
mov ebx, dword [esp + 0x14]
mov eax, dword [esp + 0x38]
mov esi, dword [esp + 0x4c]
add dword [esp + 0x1c], 2
add esi, 0x30c
mov word [edx + 0x2b8], ax
mov eax, dword [esp + 0x24]
inc eax
mov word [edx + 0x2b4], bx
mov ebx, dword [edi + 8]
mov dword [esp + 0x24], eax
mov dword [esp + 0x4c], esi
cmp eax, ebx
jl 0x466d70
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0x1b0]
xor ecx, esp
call fcn.00502eb4
mov esp, ebp
pop ebp
ret
xor eax, eax
mov dword [esp + 0x14], eax
test ebx, ebx
jle case.default.0x466ca6
xor edx, edx
mov dword [esp + 0x24], edx
push dword [edi + 0x24]
mov ecx, dword [edi + 0x190]
push eax
push dword [ebp + 8]
add ecx, edx
mov edx, esi
push dword [edi + 0x154]
push ebx
call fcn.004dca20
mov eax, dword [esp + 0x28]
add esp, 0x14
mov edx, dword [esp + 0x24]
inc eax
mov ebx, dword [edi + 8]
add edx, 0x30c
add esi, 2
mov dword [esp + 0x14], eax
mov dword [esp + 0x24], edx
cmp eax, ebx
jl 0x466f25
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0x1b0]
xor ecx, esp
call fcn.00502eb4
mov esp, ebp
pop ebp
ret
mov dword [esp + 0x14], 0
test ebx, ebx
jle case.default.0x466ca6
mov eax, dword [ebp + 8]
mov dword [esp + 0x18], 0
jmp 0x466fa0
mov ecx, dword [edi + 0x154]
mov edx, dword [edi + 0x190]
add edx, dword [esp + 0x18]
mov dword [esp + 0x10], edx
lea edx, [ecx + eax]
mov dword [esp + 0xc], ecx
mov dword [esp + 0x28], edx
cmp ecx, edx
jge 0x467024
lea eax, [ebx + ebx]
mov edi, ecx
mov ebx, esi
mov dword [esp + 0x20], eax
mov esi, dword [esp + 0x10]
mov eax, dword [esi + 8]
mov ecx, dword [esi]
push 2
lea eax, [eax + edi*2]
cdq
push edx
push eax
lea eax, [esp + 0x44]
push eax
mov eax, dword [ecx]
push ecx
call eax
add esp, 0x14
cmp eax, 2
je 0x466ff6
or eax, 0xffffffff
jmp 0x46700b
mov ax, word [esp + 0x38]
movzx ecx, ah
movzx eax, al
shl cx, 8
or cx, ax
movzx eax, cx
mov word [ebx], ax
inc edi
add ebx, dword [esp + 0x20]
cmp edi, dword [esp + 0x28]
jl 0x466fd2
mov edi, dword [esp + 0x30]
mov esi, dword [esp + 0x1c]
mov eax, dword [ebp + 8]
mov ecx, dword [esp + 0x14]
add esi, 2
add dword [esp + 0x18], 0x30c
inc ecx
mov ebx, dword [edi + 8]
mov dword [esp + 0x14], ecx
mov dword [esp + 0x1c], esi
cmp ecx, ebx
jl 0x466fa0
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0x1b0]
xor ecx, esp
call fcn.00502eb4
mov esp, ebp
pop ebp
ret
mov dword [esp + 0x14], 0
test ebx, ebx
jle case.default.0x466ca6
mov eax, dword [ebp + 8]
mov dword [esp + 0x18], 0
jmp 0x467080
mov ecx, dword [edi + 0x154]
mov edx, dword [edi + 0x190]
add edx, dword [esp + 0x18]
mov dword [esp + 0x10], edx
lea edx, [ecx + eax]
mov dword [esp + 0xc], ecx
mov dword [esp + 0x28], edx
cmp ecx, edx
jge 0x467104
lea eax, [ebx + ebx]
mov edi, ecx
mov ebx, esi
mov dword [esp + 0x20], eax
mov esi, dword [esp + 0x10]
mov eax, dword [esi + 8]
mov ecx, dword [esi]
push 2
lea eax, [eax + edi*2]
cdq
push edx
push eax
lea eax, [esp + 0x44]
push eax
mov eax, dword [ecx]
push ecx
call eax
add esp, 0x14
cmp eax, 2
je 0x4670d6
or eax, 0xffffffff
jmp 0x4670eb
mov ax, word [esp + 0x38]
movzx ecx, al
movzx eax, ah
shl cx, 8
or cx, ax
movzx eax, cx
mov word [ebx], ax
inc edi
add ebx, dword [esp + 0x20]
cmp edi, dword [esp + 0x28]
jl 0x4670b2
mov edi, dword [esp + 0x30]
mov esi, dword [esp + 0x1c]
mov eax, dword [ebp + 8]
mov ecx, dword [esp + 0x14]
add esi, 2
add dword [esp + 0x18], 0x30c
inc ecx
mov ebx, dword [edi + 8]
mov dword [esp + 0x14], ecx
mov dword [esp + 0x1c], esi
cmp ecx, ebx
jl 0x467080
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0x1b0]
xor ecx, esp
call fcn.00502eb4
mov esp, ebp
pop ebp
ret
mov dword [esp + 0x4c], 0
test ebx, ebx
jle case.default.0x466ca6
xor edx, edx
mov dword [esp + 0x18], edx
jmp 0x467160
mov eax, dword [edi + 0x154]
mov dword [esp + 0xc], eax
mov eax, dword [edi + 0x190]
add eax, edx
cmp dword [edi + 0x184], 0
mov dword [esp + 0x10], eax
mov edx, fcn.00410810
jne 0x467189
mov edx, fcn.004107c0
mov eax, dword [edi + 0x154]
mov ecx, dword [ebp + 8]
add eax, ecx
mov dword [esp + 0x24], edx
cmp dword [edi + 0x154], eax
jge 0x4671e3
lea eax, [ebx + ebx]
mov dword [esp + 0x14], ecx
imul ebx, dword [esp + 0xc]
mov edi, esi
mov esi, dword [esp + 0x10]
mov dword [esp + 0x20], eax
add ebx, ebx
mov eax, dword [esi + 8]
push dword [esi]
add eax, ebx
push eax
call edx
add ebx, dword [esp + 0x28]
add esp, 8
mov edx, dword [esp + 0x24]
mov word [edi], ax
add edi, dword [esp + 0x20]
sub dword [esp + 0x14], 1
jne 0x4671b8
mov edi, dword [esp + 0x30]
mov esi, dword [esp + 0x1c]
mov ecx, dword [esp + 0x4c]
add esi, 2
mov edx, dword [esp + 0x18]
inc ecx
mov ebx, dword [edi + 8]
add edx, 0x30c
mov dword [esp + 0x4c], ecx
mov dword [esp + 0x18], edx
mov dword [esp + 0x1c], esi
cmp ecx, ebx
jl 0x467160
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0x1b0]
xor ecx, esp
call fcn.00502eb4
mov esp, ebp
pop ebp
ret
mov dword [esp + 0x14], 0
test ebx, ebx
jle case.default.0x466ca6
mov eax, dword [ebp + 8]
mov dword [esp + 0x18], 0
lea esp, [esp]
mov ecx, dword [edi + 0x154]
mov edx, dword [edi + 0x190]
add edx, dword [esp + 0x18]
mov dword [esp + 0xc], ecx
lea esi, [ecx + eax]
mov dword [esp + 0x28], edx
mov dword [esp + 0x20], esi
cmp ecx, esi
mov esi, dword [esp + 0x1c]
jge 0x4672c7
lea eax, [ebx + ebx]
mov edi, ecx
mov ebx, esi
mov dword [esp + 0x10], eax
mov esi, 0x100
mov eax, dword [edx + 8]
mov ecx, dword [edx]
add eax, edi
cdq
push 1
push edx
push eax
lea eax, [esp + 0x4c]
push eax
mov eax, dword [ecx]
push ecx
call eax
add esp, 0x14
cmp eax, 1
je 0x467299
or al, 0xff
jmp 0x46729d
mov al, byte [esp + 0x40]
mov edx, dword [esp + 0x28]
inc edi
movsx cx, al
movsx eax, si
movsx ecx, cx
imul ecx, eax
mov word [ebx], cx
add ebx, dword [esp + 0x10]
cmp edi, dword [esp + 0x20]
jl 0x467277
mov edi, dword [esp + 0x30]
mov esi, dword [esp + 0x1c]
mov eax, dword [ebp + 8]
mov ecx, dword [esp + 0x14]
add esi, 2
add dword [esp + 0x18], 0x30c
inc ecx
mov ebx, dword [edi + 8]
mov dword [esp + 0x14], ecx
mov dword [esp + 0x1c], esi
cmp ecx, ebx
jl 0x467240
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0x1b0]
xor ecx, esp
call fcn.00502eb4
mov esp, ebp
pop ebp
ret
mov dword [esp + 0x4c], 0
test ebx, ebx
jle case.default.0x466ca6
mov ecx, dword [ebp + 8]
mov dword [esp + 0x18], 0
lea ebx, [ebx]
mov eax, dword [edi + 0x154]
mov edx, dword [edi + 0x190]
add edx, dword [esp + 0x18]
mov dword [esp + 0xc], eax
add eax, ecx
mov dword [esp + 0x10], edx
cmp dword [edi + 0x154], eax
jge 0x4673af
mov edi, ebx
mov dword [esp + 0x14], esi
imul edi, dword [esp + 0xc]
mov esi, 0x100
mov dword [esp + 0x24], ecx
mov eax, dword [edx + 8]
mov ecx, dword [edx]
add eax, edi
cdq
push 1
push edx
push eax
lea eax, [esp + 0x4c]
push eax
mov eax, dword [ecx]
push ecx
call eax
add esp, 0x14
cmp eax, 1
je 0x467378
or al, 0xff
jmp 0x46737c
mov al, byte [esp + 0x40]
mov edx, dword [esp + 0x10]
add edi, ebx
movsx cx, al
movsx eax, si
movsx ecx, cx
imul ecx, eax
sub dword [esp + 0x24], 1
mov eax, dword [esp + 0x14]
mov word [eax], cx
lea eax, [eax + ebx*2]
mov dword [esp + 0x14], eax
jne 0x467356
mov edi, dword [esp + 0x30]
mov esi, dword [esp + 0x1c]
mov ecx, dword [ebp + 8]
mov eax, dword [esp + 0x4c]
add esi, 2
add dword [esp + 0x18], 0x30c
inc eax
mov ebx, dword [edi + 8]
mov dword [esp + 0x4c], eax
mov dword [esp + 0x1c], esi
cmp eax, ebx
jl 0x467320
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0x1b0]
xor ecx, esp
call fcn.00502eb4
mov esp, ebp
pop ebp
ret
mov dword [esp + 0x14], 0
test ebx, ebx
jle case.default.0x466ca6
mov eax, dword [ebp + 8]
mov dword [esp + 0x18], 0
jmp 0x467410
mov ecx, dword [edi + 0x154]
mov edx, dword [edi + 0x190]
add edx, dword [esp + 0x18]
mov dword [esp + 0xc], ecx
lea esi, [ecx + eax]
mov dword [esp + 0x28], edx
mov dword [esp + 0x20], esi
cmp ecx, esi
mov esi, dword [esp + 0x1c]
jge 0x46749e
lea eax, [ebx + ebx]
mov edi, ecx
mov ebx, esi
mov dword [esp + 0x10], eax
mov esi, 0x100
mov eax, dword [edx + 8]
mov ecx, dword [edx]
add eax, edi
cdq
push 1
push edx
push eax
lea eax, [esp + 0x4c]
push eax
mov eax, dword [ecx]
push ecx
call eax
add esp, 0x14
cmp eax, 1
je 0x467469
or al, 0xff
jmp 0x46746d
mov al, byte [esp + 0x40]
mov edx, dword [esp + 0x28]
inc edi
movzx ecx, al
mov eax, 0x80
sub cx, ax
movsx eax, si
movsx ecx, cx
imul ecx, eax
mov word [ebx], cx
add ebx, dword [esp + 0x10]
cmp edi, dword [esp + 0x20]
jl 0x467447
mov edi, dword [esp + 0x30]
mov esi, dword [esp + 0x1c]
mov eax, dword [ebp + 8]
mov ecx, dword [esp + 0x14]
add esi, 2
add dword [esp + 0x18], 0x30c
inc ecx
mov ebx, dword [edi + 8]
mov dword [esp + 0x14], ecx
mov dword [esp + 0x1c], esi
cmp ecx, ebx
jl 0x467410
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0x1b0]
xor ecx, esp
call fcn.00502eb4
mov esp, ebp
pop ebp
ret
mov dword [esp + 0x4c], 0
test ebx, ebx
jle case.default.0x466ca6
mov ecx, dword [ebp + 8]
mov dword [esp + 0x18], 0
jmp 0x467500
mov eax, dword [edi + 0x154]
mov edx, dword [edi + 0x190]
add edx, dword [esp + 0x18]
mov dword [esp + 0xc], eax
add eax, ecx
mov dword [esp + 0x10], edx
cmp dword [edi + 0x154], eax
jge 0x467596
mov edi, ebx
mov dword [esp + 0x14], esi
imul edi, dword [esp + 0xc]
mov esi, 0x100
mov dword [esp + 0x24], ecx
mov eax, dword [edx + 8]
mov ecx, dword [edx]
add eax, edi
cdq
push 1
push edx
push eax
lea eax, [esp + 0x4c]
push eax
mov eax, dword [ecx]
push ecx
call eax
add esp, 0x14
cmp eax, 1
je 0x467558
or al, 0xff
jmp 0x46755c
mov al, byte [esp + 0x40]
mov edx, dword [esp + 0x10]
add edi, ebx
movzx ecx, al
mov eax, 0x80
sub cx, ax
movsx eax, si
movsx ecx, cx
imul ecx, eax
sub dword [esp + 0x24], 1
mov eax, dword [esp + 0x14]
mov word [eax], cx
lea eax, [eax + ebx*2]
mov dword [esp + 0x14], eax
jne 0x467536
mov edi, dword [esp + 0x30]
mov esi, dword [esp + 0x1c]
mov ecx, dword [ebp + 8]
mov eax, dword [esp + 0x4c]
add esi, 2
add dword [esp + 0x18], 0x30c
inc eax
mov ebx, dword [edi + 8]
mov dword [esp + 0x4c], eax
mov dword [esp + 0x1c], esi
cmp eax, ebx
jl 0x467500
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0x1b0]
xor ecx, esp
call fcn.00502eb4
mov esp, ebp
pop ebp
ret
mov dword [esp + 0x14], 0
test ebx, ebx
jle case.default.0x466ca6
mov eax, dword [ebp + 8]
mov dword [esp + 0x18], 0
lea esp, [esp]
mov ecx, dword [edi + 0x154]
mov edx, dword [edi + 0x190]
add edx, dword [esp + 0x18]
mov dword [esp + 0x10], edx
lea edx, [ecx + eax]
mov dword [esp + 0xc], ecx
mov dword [esp + 0x28], edx
cmp ecx, edx
jge 0x467673
lea eax, [ebx + ebx]
mov edi, ecx
mov ebx, esi
mov dword [esp + 0x20], eax
mov esi, dword [esp + 0x10]
mov eax, dword [esi + 8]
mov ecx, dword [esi]
add eax, edi
cdq
push 1
push edx
push eax
lea eax, [esp + 0x4c]
push eax
mov eax, dword [ecx]
push ecx
call eax
add esp, 0x14
cmp eax, 1
je 0x467644
or al, 0xff
jmp 0x467648
mov al, byte [esp + 0x40]
movzx eax, al
test al, al
jns 0x467657
and eax, 0x7f
neg eax
movzx eax, ax
shl eax, 8
inc edi
mov word [ebx], ax
add ebx, dword [esp + 0x20]
cmp edi, dword [esp + 0x28]
jl 0x467622
mov edi, dword [esp + 0x30]
mov esi, dword [esp + 0x1c]
mov eax, dword [ebp + 8]
mov ecx, dword [esp + 0x14]
add esi, 2
add dword [esp + 0x18], 0x30c
inc ecx
mov ebx, dword [edi + 8]
mov dword [esp + 0x14], ecx
mov dword [esp + 0x1c], esi
cmp ecx, ebx
jl 0x4675f0
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0x1b0]
xor ecx, esp
call fcn.00502eb4
mov esp, ebp
pop ebp
ret
mov dword [esp + 0x2c], 0
test ebx, ebx
jle case.default.0x466ca6
mov eax, dword [ebp + 8]
mov dword [esp + 0x38], 0
jmp 0x4676d0
mov ecx, dword [edi + 0x154]
mov edx, dword [edi + 0x190]
add edx, dword [esp + 0x38]
mov dword [esp + 0x24], edx
mov edx, dword [edi + 0x188]
lea esi, [ecx + eax]
and edx, 1
mov dword [esp + 0x34], esi
cmp ecx, esi
mov dword [esp + 0x18], ecx
mov esi, dword [esp + 0x1c]
mov dword [esp + 0x4c], edx
jge 0x46780b
mov edi, dword [esp + 0x24]
cmp ebx, 1
je 0x46778d
lea eax, [ebx + ebx]
mov dword [esp + 0x14], esi
mov esi, dword [esp + 0x2c]
mov dword [esp + 0xc], eax
mov eax, dword [edi + 8]
mov ebx, esi
add eax, ecx
test edx, edx
je 0x46772d
not ebx
mov ecx, dword [edi]
and ebx, 1
cdq
push 1
push edx
push eax
lea eax, [esp + 0x4c]
shl ebx, 2
push eax
mov eax, dword [ecx]
push ecx
call eax
add esp, 0x14
cmp eax, 1
je 0x467750
or al, 0xff
jmp 0x467754
mov al, byte [esp + 0x40]
mov edx, dword [esp + 0x14]
mov cl, bl
sar al, cl
and al, 0xf
movzx ecx, al
mov eax, 0x1100
movsx ecx, cx
cwde
imul ecx, eax
mov word [edx], cx
mov ecx, dword [esp + 0x18]
add edx, dword [esp + 0xc]
inc ecx
mov dword [esp + 0x14], edx
mov edx, dword [esp + 0x4c]
mov dword [esp + 0x18], ecx
cmp ecx, dword [esp + 0x34]
jl 0x467720
jmp 0x467800
mov dword [esp + 0x14], esi
mov esi, dword [esp + 0x4c]
mov eax, ecx
mov ebx, ecx
cdq
sub eax, edx
sar eax, 1
add eax, dword [edi + 8]
test esi, esi
je 0x4677a7
not ebx
mov ecx, dword [edi]
and ebx, 1
cdq
push 1
push edx
push eax
lea eax, [esp + 0x4c]
shl ebx, 2
push eax
mov eax, dword [ecx]
push ecx
call eax
add esp, 0x14
cmp eax, 1
je 0x4677ca
or al, 0xff
jmp 0x4677ce
mov al, byte [esp + 0x40]
mov cl, bl
mov ebx, dword [esp + 0x14]
sar al, cl
and al, 0xf
movzx ecx, al
mov eax, 0x1100
movsx ecx, cx
cwde
imul ecx, eax
mov word [ebx], cx
add ebx, 2
mov ecx, dword [esp + 0x18]
inc ecx
mov dword [esp + 0x14], ebx
mov dword [esp + 0x18], ecx
cmp ecx, dword [esp + 0x34]
jl 0x467795
mov eax, dword [ebp + 8]
mov esi, dword [esp + 0x1c]
mov edi, dword [esp + 0x30]
mov ecx, dword [esp + 0x2c]
add esi, 2
add dword [esp + 0x38], 0x30c
inc ecx
mov ebx, dword [edi + 8]
mov dword [esp + 0x2c], ecx
mov dword [esp + 0x1c], esi
cmp ecx, ebx
jl 0x4676d0
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0x1b0]
xor ecx, esp
call fcn.00502eb4
mov esp, ebp
pop ebp
ret
mov dword [esp + 0x2c], 0
test ebx, ebx
jle case.default.0x466ca6
mov eax, dword [ebp + 8]
mov dword [esp + 0x38], 0
mov edi, edi
mov ecx, dword [edi + 0x154]
mov edx, dword [edi + 0x190]
add edx, dword [esp + 0x38]
mov dword [esp + 0x14], edx
mov edx, dword [edi + 0x188]
lea esi, [ecx + eax]
and edx, 1
mov dword [esp + 0x4c], esi
cmp ecx, esi
mov dword [esp + 0x18], ecx
mov esi, dword [esp + 0x1c]
mov dword [esp + 0x24], edx
jge 0x4679af
mov edi, dword [esp + 0x14]
cmp ebx, 1
je 0x467929
lea eax, [ebx + ebx]
mov dword [esp + 0x34], esi
mov esi, dword [esp + 0x2c]
mov dword [esp + 0xc], eax
mov eax, dword [edi + 8]
mov ebx, esi
add eax, ecx
test edx, edx
je 0x4678c1
not ebx
mov ecx, dword [edi]
and ebx, 1
cdq
push 1
push edx
push eax
lea eax, [esp + 0x4c]
shl ebx, 2
push eax
mov eax, dword [ecx]
push ecx
call eax
add esp, 0x14
cmp eax, 1
je 0x4678e4
or al, 0xff
jmp 0x4678e8
mov al, byte [esp + 0x40]
mov edx, dword [esp + 0x34]
mov cl, bl
sar al, cl
and al, 0xf
movzx ecx, al
mov eax, 0x1100
movsx ecx, cx
cwde
imul ecx, eax
mov eax, 0xffff8000
add cx, ax
mov word [edx], cx
mov ecx, dword [esp + 0x18]
add edx, dword [esp + 0xc]
inc ecx
mov dword [esp + 0x34], edx
mov edx, dword [esp + 0x24]
mov dword [esp + 0x18], ecx
cmp ecx, dword [esp + 0x4c]
jl 0x4678b4
jmp 0x4679a4
mov dword [esp + 0x34], esi
mov esi, dword [esp + 0x24]
mov eax, ecx
mov ebx, ecx
cdq
sub eax, edx
sar eax, 1
add eax, dword [edi + 8]
test esi, esi
je 0x467943
not ebx
mov ecx, dword [edi]
and ebx, 1
cdq
push 1
push edx
push eax
lea eax, [esp + 0x4c]
shl ebx, 2
push eax
mov eax, dword [ecx]
push ecx
call eax
add esp, 0x14
cmp eax, 1
je 0x467966
or al, 0xff
jmp 0x46796a
mov al, byte [esp + 0x40]
mov cl, bl
mov ebx, dword [esp + 0x34]
sar al, cl
and al, 0xf
movzx ecx, al
mov eax, 0x1100
movsx ecx, cx
cwde
imul ecx, eax
mov eax, 0xffff8000
add cx, ax
mov word [ebx], cx
add ebx, 2
mov ecx, dword [esp + 0x18]
inc ecx
mov dword [esp + 0x34], ebx
mov dword [esp + 0x18], ecx
cmp ecx, dword [esp + 0x4c]
jl 0x467931
mov eax, dword [ebp + 8]
mov esi, dword [esp + 0x1c]
mov edi, dword [esp + 0x30]
mov ecx, dword [esp + 0x2c]
add esi, 2
add dword [esp + 0x38], 0x30c
inc ecx
mov ebx, dword [edi + 8]
mov dword [esp + 0x2c], ecx
mov dword [esp + 0x1c], esi
cmp ecx, ebx
jl 0x467860
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0x1b0]
xor ecx, esp
call fcn.00502eb4
mov esp, ebp
pop ebp
ret
mov dword [esp + 0x34], 0
test ebx, ebx
jle case.default.0x466ca6
mov eax, dword [ebp + 8]
mov dword [esp + 0x18], 0
jmp 0x467a10
mov ecx, dword [edi + 0x154]
mov edx, dword [edi + 0x190]
add edx, dword [esp + 0x18]
mov dword [esp + 0x10], edx
lea edx, [ecx + eax]
mov dword [esp + 0xc], ecx
mov dword [esp + 0x28], edx
cmp ecx, edx
jge 0x467a83
lea eax, [ebx + ebx]
mov edi, ecx
mov ebx, esi
mov dword [esp + 0x20], eax
mov esi, dword [esp + 0x10]
mov eax, dword [esi + 8]
mov ecx, dword [esi]
add eax, edi
cdq
push 1
push edx
push eax
lea eax, [esp + 0x4c]
push eax
mov eax, dword [ecx]
push ecx
call eax
add esp, 0x14
cmp eax, 1
je 0x467abb
mov eax, 0x84
sub eax, 0x84
mov word [ebx], ax
inc edi
add ebx, dword [esp + 0x20]
cmp edi, dword [esp + 0x28]
jl 0x467a42
mov edi, dword [esp + 0x30]
mov esi, dword [esp + 0x1c]
mov eax, dword [ebp + 8]
mov ecx, dword [esp + 0x34]
add esi, 2
add dword [esp + 0x18], 0x30c
inc ecx
mov ebx, dword [edi + 8]
mov dword [esp + 0x34], ecx
mov dword [esp + 0x1c], esi
cmp ecx, ebx
jl 0x467a10
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0x1b0]
xor ecx, esp
call fcn.00502eb4
mov esp, ebp
pop ebp
ret
mov dl, byte [esp + 0x40]
not dl
movzx ecx, dl
mov eax, ecx
shr ecx, 4
and eax, 0xf
and ecx, 7
lea eax, [eax*8 + 0x84]
shl eax, cl
mov ecx, eax
test dl, dl
jns 0x467a65
mov eax, 0x84
sub eax, ecx
jmp 0x467a6a
mov dword [esp + 0x14], 0
test ebx, ebx
jle case.default.0x466ca6
mov ecx, dword [ebp + 8]
mov dword [esp + 0x18], 0
jmp 0x467b10
mov eax, dword [edi + 0x154]
mov edx, dword [edi + 0x190]
add edx, dword [esp + 0x18]
mov dword [esp + 0xc], eax
add eax, ecx
mov dword [esp + 0x10], edx
cmp dword [edi + 0x154], eax
jge 0x467b87
mov edi, ebx
mov dword [esp + 0x34], ecx
imul edi, dword [esp + 0xc]
mov dword [esp + 0xc], esi
mov eax, dword [edx + 8]
mov ecx, dword [edx]
add eax, edi
cdq
push 1
push edx
push eax
lea eax, [esp + 0x4c]
push eax
mov eax, dword [ecx]
push ecx
call eax
add esp, 0x14
cmp eax, 1
je 0x467bbf
mov eax, 0x84
sub eax, 0x84
mov edx, dword [esp + 0x10]
add edi, ebx
sub dword [esp + 0x34], 1
mov word [esi], ax
lea esi, [esi + ebx*2]
jne 0x467b41
mov edi, dword [esp + 0x30]
mov esi, dword [esp + 0x1c]
mov ecx, dword [ebp + 8]
mov eax, dword [esp + 0x14]
add esi, 2
add dword [esp + 0x18], 0x30c
inc eax
mov ebx, dword [edi + 8]
mov dword [esp + 0x14], eax
mov dword [esp + 0x1c], esi
cmp eax, ebx
jl 0x467b10
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0x1b0]
xor ecx, esp
call fcn.00502eb4
mov esp, ebp
pop ebp
ret
mov dl, byte [esp + 0x40]
not dl
movzx ecx, dl
mov eax, ecx
shr ecx, 4
and eax, 0xf
and ecx, 7
lea eax, [eax*8 + 0x84]
shl eax, cl
mov ecx, eax
test dl, dl
jns 0x467b64
mov eax, 0x84
sub eax, ecx
jmp 0x467b69
mov dword [esp + 0x14], 0
test ebx, ebx
jle case.default.0x466ca6
mov eax, dword [ebp + 8]
mov dword [esp + 0x18], 0
lea esp, [esp]
mov ecx, dword [edi + 0x154]
mov edx, dword [edi + 0x190]
add edx, dword [esp + 0x18]
mov dword [esp + 0x10], edx
lea edx, [ecx + eax]
mov dword [esp + 0xc], ecx
mov dword [esp + 0x28], edx
cmp ecx, edx
jge 0x467cd1
lea eax, [ebx + ebx]
mov dword [esp + 0x34], esi
mov esi, dword [esp + 0x10]
mov edi, ecx
mov dword [esp + 0x20], eax
mov eax, dword [esi + 8]
mov ecx, dword [esi]
add eax, edi
cdq
push 1
push edx
push eax
lea eax, [esp + 0x4c]
push eax
mov eax, dword [ecx]
push ecx
call eax
add esp, 0x14
cmp eax, 1
je 0x467c6a
or al, 0xff
jmp 0x467c6e
mov al, byte [esp + 0x40]
movzx eax, al
xor eax, 0x55
mov ecx, eax
mov ebx, eax
shr ecx, 4
and eax, 0xf
and ecx, 7
shl eax, 4
mov edx, ecx
and ebx, 0x80
sub edx, 0
je 0x467ca7
sub edx, 1
je 0x467ca0
add eax, 0x108
dec ecx
shl eax, cl
jmp 0x467caa
add eax, 0x108
jmp 0x467caa
add eax, 8
test ebx, ebx
jne 0x467cb0
neg eax
mov ebx, dword [esp + 0x34]
inc edi
mov word [ebx], ax
add ebx, dword [esp + 0x20]
mov dword [esp + 0x34], ebx
cmp edi, dword [esp + 0x28]
jl 0x467c48
mov edi, dword [esp + 0x30]
mov esi, dword [esp + 0x1c]
mov eax, dword [ebp + 8]
mov ecx, dword [esp + 0x14]
add esi, 2
add dword [esp + 0x18], 0x30c
inc ecx
mov ebx, dword [edi + 8]
mov dword [esp + 0x14], ecx
mov dword [esp + 0x1c], esi
cmp ecx, ebx
jl 0x467c10
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0x1b0]
xor ecx, esp
call fcn.00502eb4
mov esp, ebp
pop ebp
ret
xor edx, edx
mov dword [esp + 0x14], edx
test ebx, ebx
jle case.default.0x466ca6
mov dword [esp + 0x18], edx
jmp 0x467d20
mov eax, dword [edi + 0x190]
add eax, dword [esp + 0x18]
cmp dword [edi + 0x184], 0
mov ecx, dword [edi + 0x154]
mov dword [esp + 0xc], ecx
mov dword [esp + 0x10], eax
mov dword [esp + 0x34], 0x42a2b0
jne 0x467d51
mov dword [esp + 0x34], 0x42a310
mov eax, dword [ebp + 8]
add eax, ecx
mov dword [esp + 0x28], eax
cmp ecx, eax
jge 0x467dcd
mov edi, dword [esp + 0xc]
lea eax, [ebx + ebx]
mov ebx, esi
mov dword [esp + 0x20], eax
mov esi, dword [esp + 0x10]
nop
mov eax, dword [esi + 8]
push dword [esi]
lea eax, [eax + edi*4]
push eax
call dword [esp + 0x3c]
fmul dword [0x5f8bf4]
fadd dword [0x5f8a1c]
fstp qword [esp]
call fcn.0051f540
add esp, 8
call fcn.0051f100
cmp eax, 0x7fff
jle 0x467da7
mov eax, 0x7fff
jmp 0x467db3
cmp eax, 0xffff8000
jge 0x467db3
mov eax, 0xffff8000
mov word [ebx], ax
inc edi
add ebx, dword [esp + 0x20]
cmp edi, dword [esp + 0x28]
jl 0x467d70
mov edi, dword [esp + 0x30]
mov esi, dword [esp + 0x1c]
mov edx, dword [esp + 0x14]
add dword [esp + 0x18], 0x30c
inc edx
mov ebx, dword [edi + 8]
add esi, 2
mov dword [esp + 0x14], edx
mov dword [esp + 0x1c], esi
cmp edx, ebx
jl 0x467d20
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0x1b0]
xor ecx, esp
call fcn.00502eb4
mov esp, ebp
pop ebp
ret
mov dword [esp + 0x24], 0
test ebx, ebx
jle case.default.0x466ca6
mov ecx, dword [ebp + 8]
mov dword [esp + 0x18], 0
lea esp, [esp]
mov eax, dword [edi + 0x154]
mov edx, dword [edi + 0x190]
add edx, dword [esp + 0x18]
mov dword [esp + 0xc], eax
add eax, ecx
mov dword [esp + 0x14], edx
cmp dword [edi + 0x154], eax
jge 0x467ed5
mov eax, dword [esp + 0xc]
mov dword [esp + 0x34], ecx
lea edi, [eax + eax*2]
lea eax, [ebx + ebx]
mov ebx, esi
mov dword [esp + 0xc], eax
lea ebx, [ebx]
mov esi, dword [edx + 8]
mov ecx, dword [edx]
add esi, edi
push 1
mov eax, esi
cdq
push edx
push eax
lea eax, [esp + 0x44]
push eax
mov eax, dword [ecx]
push ecx
call eax
mov ecx, dword [esp + 0x28]
lea eax, [esi + 1]
add esp, 0x14
cdq
mov ecx, dword [ecx]
push 2
push edx
push eax
lea eax, [esp + 0x4c]
push eax
mov eax, dword [ecx]
push ecx
call eax
add esp, 0x14
cmp eax, 2
je 0x467ea0
or eax, 0xffffffff
jmp 0x467eb5
mov ax, word [esp + 0x40]
movzx ecx, ah
movzx eax, al
shl cx, 8
or cx, ax
movzx eax, cx
mov edx, dword [esp + 0x14]
add edi, 3
mov word [ebx], ax
add ebx, dword [esp + 0xc]
sub dword [esp + 0x34], 1
jne 0x467e60
mov edi, dword [esp + 0x30]
mov esi, dword [esp + 0x1c]
mov ecx, dword [ebp + 8]
mov eax, dword [esp + 0x24]
add esi, 2
add dword [esp + 0x18], 0x30c
inc eax
mov ebx, dword [edi + 8]
mov dword [esp + 0x24], eax
mov dword [esp + 0x1c], esi
cmp eax, ebx
jl 0x467e20
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0x1b0]
xor ecx, esp
call fcn.00502eb4
mov esp, ebp
pop ebp
ret
mov dword [esp + 0x24], 0
test ebx, ebx
jle case.default.0x466ca6
mov ecx, dword [ebp + 8]
mov dword [esp + 0x18], 0
jmp 0x467f30
mov eax, dword [edi + 0x154]
mov edx, dword [edi + 0x190]
add edx, dword [esp + 0x18]
mov dword [esp + 0xc], eax
add eax, ecx
mov dword [esp + 0x14], edx
cmp dword [edi + 0x154], eax
jge 0x467fe5
mov eax, dword [esp + 0xc]
mov dword [esp + 0x34], ecx
lea edi, [eax + eax*2]
lea eax, [ebx + ebx]
mov ebx, esi
mov dword [esp + 0xc], eax
lea ebx, [ebx]
mov esi, dword [edx + 8]
mov ecx, dword [edx]
add esi, edi
push 1
lea eax, [esi + 2]
cdq
push edx
push eax
lea eax, [esp + 0x44]
push eax
push ecx
mov ecx, dword [ecx]
call ecx
mov ecx, dword [esp + 0x28]
add esp, 0x14
mov eax, esi
cdq
mov ecx, dword [ecx]
push 2
push edx
push eax
lea eax, [esp + 0x4c]
push eax
mov eax, dword [ecx]
push ecx
call eax
add esp, 0x14
cmp eax, 2
je 0x467fb0
or eax, 0xffffffff
jmp 0x467fc5
mov ax, word [esp + 0x40]
movzx ecx, al
movzx eax, ah
shl cx, 8
or cx, ax
movzx eax, cx
mov edx, dword [esp + 0x14]
add edi, 3
mov word [ebx], ax
add ebx, dword [esp + 0xc]
sub dword [esp + 0x34], 1
jne 0x467f70
mov edi, dword [esp + 0x30]
mov esi, dword [esp + 0x1c]
mov ecx, dword [ebp + 8]
mov eax, dword [esp + 0x24]
add esi, 2
add dword [esp + 0x18], 0x30c
inc eax
mov ebx, dword [edi + 8]
mov dword [esp + 0x24], eax
mov dword [esp + 0x1c], esi
cmp eax, ebx
jl 0x467f30
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0x1b0]
xor ecx, esp
call fcn.00502eb4
mov esp, ebp
pop ebp
ret
mov dword [esp + 0x14], 0
test ebx, ebx
jle case.default.0x466ca6
mov eax, dword [ebp + 8]
mov dword [esp + 0x18], 0
jmp 0x468040
mov ecx, dword [edi + 0x154]
mov edx, dword [edi + 0x190]
add edx, dword [esp + 0x18]
mov dword [esp + 0x10], edx
lea edx, [ecx + eax]
mov dword [esp + 0xc], ecx
mov dword [esp + 0x28], edx
cmp ecx, edx
jge 0x4680c4
lea eax, [ebx + ebx]
mov edi, ecx
mov ebx, esi
mov dword [esp + 0x20], eax
mov esi, dword [esp + 0x10]
mov eax, dword [esi + 8]
mov ecx, dword [esi]
push 4
lea eax, [eax + edi*4]
cdq
push edx
push eax
lea eax, [esp + 0x40]
push eax
mov eax, dword [ecx]
push ecx
call eax
add esp, 0x14
cmp eax, 4
je 0x468096
or ecx, 0xffffffff
jmp 0x4680a8
movzx ecx, byte [esp + 0x37]
movzx eax, byte [esp + 0x36]
shl ecx, 8
or ecx, eax
shl ecx, 0x10
sar ecx, 0x10
inc edi
mov word [ebx], cx
add ebx, dword [esp + 0x20]
cmp edi, dword [esp + 0x28]
jl 0x468072
mov edi, dword [esp + 0x30]
mov esi, dword [esp + 0x1c]
mov eax, dword [ebp + 8]
mov ecx, dword [esp + 0x14]
add esi, 2
add dword [esp + 0x18], 0x30c
inc ecx
mov ebx, dword [edi + 8]
mov dword [esp + 0x14], ecx
mov dword [esp + 0x1c], esi
cmp ecx, ebx
jl 0x468040
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0x1b0]
xor ecx, esp
call fcn.00502eb4
mov esp, ebp
pop ebp
ret
mov dword [esp + 0x20], 0
test ebx, ebx
jle case.default.0x466ca6
xor edx, edx
mov dword [esp + 0x10], edx
mov ecx, dword [edi + 0x190]
mov eax, dword [edi + 0x154]
add ecx, edx
mov dword [esp + 0x34], eax
mov dword [esp + 0x24], ecx
mov edx, dword [ecx + 0x2b4]
mov dword [esp + 0x14], edx
mov dword [esp + 0x4c], edx
mov edx, dword [ecx + 0x2c4]
mov dword [esp + 0x18], edx
test eax, eax
jne 0x4681ea
mov eax, dword [ecx + 8]
mov ecx, dword [ecx]
mov dword [esp + 0xc], eax
cdq
push 2
push edx
push eax
lea eax, [esp + 0x44]
push eax
mov eax, dword [ecx]
push ecx
call eax
add esp, 0x14
cmp eax, 2
je 0x46816d
or eax, 0xffffffff
jmp 0x468182
mov ax, word [esp + 0x38]
movzx ecx, ah
movzx eax, al
shl cx, 8
or cx, ax
movzx eax, cx
mov ecx, dword [esp + 0x24]
cwde
mov dword [esp + 0x14], eax
mov dword [esp + 0x4c], eax
mov eax, dword [esp + 0xc]
mov ecx, dword [ecx]
add eax, 2
cdq
push 2
push edx
push eax
lea eax, [esp + 0x38]
push eax
mov eax, dword [ecx]
push ecx
call eax
add esp, 0x14
cmp eax, 2
je 0x4681b4
or eax, 0xffffffff
jmp 0x4681c9
mov ax, word [esp + 0x2c]
movzx ecx, ah
movzx eax, al
shl cx, 8
or cx, ax
movzx eax, cx
movsx edx, ax
movzx ecx, ax
mov dword [esp + 0x18], edx
test edx, edx
jns 0x4681db
xor edx, edx
jmp 0x4681e6
cmp cx, 0x58
jle 0x4681ea
mov edx, 0x58
mov dword [esp + 0x18], edx
mov eax, dword [ebp + 8]
add eax, dword [esp + 0x34]
mov dword [esp + 0x3c], eax
cmp dword [esp + 0x34], eax
jge 0x46828d
mov edi, dword [esp + 0x34]
lea eax, [ebx + ebx]
mov dword [esp + 0x28], esi
mov esi, dword [esp + 0x24]
mov dword [esp + 0xc], eax
mov ecx, edi
test ecx, ecx
jns 0x46821b
add ecx, 1
sar ecx, 1
mov eax, dword [esi + 8]
mov ebx, edi
add eax, 4
and ebx, 1
add eax, ecx
shl ebx, 2
mov ecx, dword [esi]
cdq
push 1
push edx
push eax
lea eax, [esp + 0x4c]
push eax
mov eax, dword [ecx]
push ecx
call eax
add esp, 0x14
cmp eax, 1
je 0x46824b
or cl, 0xff
jmp 0x46824f
mov cl, byte [esp + 0x40]
lea eax, [esp + 0x18]
mov edx, ebx
push eax
lea eax, [esp + 0x50]
push eax
call fcn.004dde60
mov ecx, dword [esp + 0x30]
inc edi
mov eax, dword [esp + 0x54]
add esp, 8
mov dword [esp + 0x14], eax
mov word [ecx], ax
add ecx, dword [esp + 0xc]
mov dword [esp + 0x28], ecx
cmp edi, dword [esp + 0x3c]
jl 0x468212
mov edx, dword [esp + 0x18]
mov edi, dword [esp + 0x30]
mov esi, dword [esp + 0x1c]
mov eax, dword [esp + 0x24]
add esi, 2
mov ecx, dword [esp + 0x14]
mov dword [esp + 0x1c], esi
mov dword [eax + 0x2c4], edx
mov edx, dword [esp + 0x10]
mov dword [eax + 0x2b4], ecx
add edx, 0x30c
mov eax, dword [esp + 0x20]
mov ebx, dword [edi + 8]
inc eax
mov dword [esp + 0x20], eax
mov dword [esp + 0x10], edx
cmp eax, ebx
jl 0x468112
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0x1b0]
xor ecx, esp
call fcn.00502eb4
mov esp, ebp
pop ebp
ret
mov dword [esp + 0x34], 0
test ebx, ebx
jle case.default.0x466ca6
xor edx, edx
mov dword [esp + 0xc], edx
jmp 0x468300
mov eax, dword [edi + 0x190]
mov ecx, dword [edi + 0x154]
add eax, edx
mov dword [esp + 0x10], ecx
mov dword [esp + 0x24], eax
mov esi, dword [eax + 0x2c4]
movsx edx, word [eax + 0x2b4]
mov dword [esp + 0x4c], esi
mov dword [esp + 0x14], esi
lea esi, [eax + 8]
mov dword [esp + 0x18], edx
mov dword [esp + 0x20], esi
test ecx, ecx
jne 0x4683ca
mov ecx, dword [eax]
mov esi, dword [esi]
mov eax, esi
cdq
push 2
push edx
push eax
lea eax, [esp + 0x38]
push eax
mov eax, dword [ecx]
push ecx
call eax
add esp, 0x14
cmp eax, 2
je 0x468360
or eax, 0xffffffff
jmp 0x468375
mov ax, word [esp + 0x2c]
movzx ecx, ah
movzx eax, al
shl cx, 8
or cx, ax
movzx eax, cx
cwde
mov dword [esp + 0x18], eax
mov eax, dword [esp + 0x24]
push 1
mov ecx, dword [eax]
lea eax, [esi + 2]
cdq
push edx
push eax
lea eax, [esp + 0x4c]
push eax
mov eax, dword [ecx]
push ecx
call eax
add esp, 0x14
cmp eax, 1
je 0x4683b1
mov ecx, dword [esp + 0x10]
or al, 0xff
mov edx, dword [esp + 0x18]
movsx eax, al
mov dword [esp + 0x4c], eax
mov dword [esp + 0x14], eax
jmp 0x4683ce
mov al, byte [esp + 0x40]
mov ecx, dword [esp + 0x10]
mov edx, dword [esp + 0x18]
movsx eax, al
mov dword [esp + 0x4c], eax
mov dword [esp + 0x14], eax
jmp 0x4683ce
mov dword [esp + 0x20], esi
mov eax, dword [ebp + 8]
mov esi, dword [esp + 0x1c]
add eax, ecx
mov dword [esp + 0x44], eax
cmp ecx, eax
jge 0x46847c
mov edi, dword [esp + 0x10]
lea eax, [ebx + ebx]
mov dword [esp + 0x3c], eax
mov dword [esp + 0x28], esi
mov ecx, edi
test ecx, ecx
jns 0x4683fb
add ecx, 1
sar ecx, 1
mov eax, dword [esp + 0x20]
lea ebx, [edi*4]
push 1
not ebx
and ebx, 4
mov eax, dword [eax]
add eax, 4
add eax, ecx
mov ecx, dword [esp + 0x28]
cdq
push edx
push eax
mov ecx, dword [ecx]
lea eax, [esp + 0x44]
push eax
push ecx
mov eax, dword [ecx]
call eax
add esp, 0x14
cmp eax, 1
je 0x468436
or cl, 0xff
jmp 0x46843a
mov cl, byte [esp + 0x38]
lea eax, [esp + 0x14]
mov edx, ebx
push eax
lea eax, [esp + 0x1c]
push eax
call fcn.004dde60
mov eax, dword [esp + 0x30]
inc edi
mov esi, dword [esp + 0x20]
add esp, 8
mov word [eax], si
add eax, dword [esp + 0x3c]
mov dword [esp + 0x28], eax
cmp edi, dword [esp + 0x44]
jl 0x4683f2
mov eax, dword [esp + 0x14]
mov edi, dword [esp + 0x30]
mov esi, dword [esp + 0x1c]
mov edx, dword [esp + 0x18]
mov dword [esp + 0x4c], eax
mov eax, dword [esp + 0x24]
add esi, 2
mov ecx, dword [esp + 0x4c]
mov dword [esp + 0x1c], esi
mov word [eax + 0x2b4], dx
mov edx, dword [esp + 0xc]
mov dword [eax + 0x2c4], ecx
add edx, 0x30c
mov eax, dword [esp + 0x34]
mov ebx, dword [edi + 8]
inc eax
mov dword [esp + 0x34], eax
mov dword [esp + 0xc], edx
cmp eax, ebx
jl 0x468300
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0x1b0]
xor ecx, esp
call fcn.00502eb4
mov esp, ebp
pop ebp
ret
cmp ebx, 1
jle 0x4684ea
cmp edx, 0x38
jne 0x4684ea
mov ecx, 1
xor eax, eax
mov dword [esp + 0x10], ecx
mov dword [esp + 0x14], eax
jmp 0x4684fe
xor eax, eax
xor ecx, ecx
mov dword [esp + 0x14], eax
mov dword [esp + 0x10], ecx
test ebx, ebx
jle case.default.0x466ca6
xor edx, edx
mov dword [esp + 0xc], edx
push ecx
mov ecx, dword [edi + 0x190]
push eax
push dword [ebp + 8]
add ecx, edx
mov edx, esi
push dword [edi + 0x154]
push ebx
call fcn.004de890
mov eax, dword [esp + 0x28]
add esp, 0x14
mov edx, dword [esp + 0xc]
inc eax
mov ebx, dword [edi + 8]
add edx, 0x30c
mov ecx, dword [esp + 0x10]
add esi, 2
mov dword [esp + 0x14], eax
mov dword [esp + 0xc], edx
cmp eax, ebx
jl 0x468504
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0x1b0]
xor ecx, esp
call fcn.00502eb4
mov esp, ebp
pop ebp
ret
xor eax, eax
mov dword [esp + 0xc], eax
test ebx, ebx
jle case.default.0x466ca6
xor edx, edx
mov dword [esp + 0x10], edx
mov ecx, dword [edi + 0x190]
push eax
push dword [ebp + 8]
add ecx, edx
mov edx, esi
push dword [edi + 0x154]
push ebx
call fcn.004deb20
mov eax, dword [esp + 0x1c]
add esp, 0x10
mov edx, dword [esp + 0x10]
inc eax
mov ebx, dword [edi + 8]
add edx, 0x30c
add esi, 2
mov dword [esp + 0xc], eax
mov dword [esp + 0x10], edx
cmp eax, ebx
jl 0x468570
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0x1b0]
xor ecx, esp
call fcn.00502eb4
mov esp, ebp
pop ebp
ret
cmp edx, 0x37
je 0x4685d1
cmp ebx, 1
je 0x4685d1
xor eax, eax
jmp 0x4685d6
mov eax, 1
mov dword [edi + 0x188], eax
xor eax, eax
mov dword [esp + 0xc], eax
test ebx, ebx
jle case.default.0x466ca6
xor ecx, ecx
mov dword [esp + 0x10], ecx
mov edx, dword [edi + 0x190]
push eax
push dword [ebp + 8]
add edx, ecx
mov ecx, edi
push dword [edi + 0x154]
push ebx
push esi
call fcn.004de4b0
mov eax, dword [esp + 0x20]
add esp, 0x14
mov ecx, dword [esp + 0x10]
inc eax
mov ebx, dword [edi + 8]
add ecx, 0x30c
add esi, 2
mov dword [esp + 0xc], eax
mov dword [esp + 0x10], ecx
cmp eax, ebx
jl 0x4685f0
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0x1b0]
xor ecx, esp
call fcn.00502eb4
mov esp, ebp
pop ebp
ret
xor eax, eax
mov dword [esp + 0xc], eax
test ebx, ebx
jle case.default.0x466ca6
xor ecx, ecx
mov dword [esp + 0x10], ecx
jmp 0x468660
mov edx, dword [edi + 0x190]
push eax
push dword [ebp + 8]
add edx, ecx
mov ecx, edi
push dword [edi + 0x154]
push ebx
push esi
call fcn.004ded30
mov eax, dword [esp + 0x20]
add esp, 0x14
mov ecx, dword [esp + 0x10]
inc eax
mov ebx, dword [edi + 8]
add ecx, 0x30c
add esi, 2
mov dword [esp + 0xc], eax
mov dword [esp + 0x10], ecx
cmp eax, ebx
jl 0x468660
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0x1b0]
xor ecx, esp
call fcn.00502eb4
mov esp, ebp
pop ebp
ret
mov dword [esp + 0xc], 0
test ebx, ebx
jle case.default.0x466ca6
xor edx, edx
mov dword [esp + 0x10], edx
lea ebx, [ebx]
push dword [ebp + 8]
mov ecx, dword [edi + 0x190]
push dword [edi + 0x154]
add ecx, edx
mov edx, esi
push ebx
call fcn.004deef0
mov eax, dword [esp + 0x18]
add esp, 0xc
mov edx, dword [esp + 0x10]
inc eax
mov ebx, dword [edi + 8]
add edx, 0x30c
add esi, 2
mov dword [esp + 0xc], eax
mov dword [esp + 0x10], edx
cmp eax, ebx
jl 0x4686d0
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0x1b0]
xor ecx, esp
call fcn.00502eb4
mov esp, ebp
pop ebp
ret
xor eax, eax
mov dword [esp + 0xc], eax
test ebx, ebx
jle case.default.0x466ca6
xor edx, edx
mov dword [esp + 0x10], edx
mov ecx, dword [edi + 0x190]
push eax
push dword [ebp + 8]
add ecx, edx
mov edx, esi
push dword [edi + 0x154]
push ebx
call fcn.004ef5a0
mov eax, dword [esp + 0x1c]
add esp, 0x10
mov edx, dword [esp + 0x10]
inc eax
mov ebx, dword [edi + 8]
add edx, 0x30c
add esi, 2
mov dword [esp + 0xc], eax
mov dword [esp + 0x10], edx
cmp eax, ebx
jl 0x468736
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0x1b0]
xor ecx, esp
call fcn.00502eb4
mov esp, ebp
pop ebp
ret
mov dword [esp + 0xc], 0
test ebx, ebx
jle case.default.0x466ca6
mov eax, dword [ebp + 8]
mov dword [esp + 0x14], 0
jmp 0x4687b0
mov ecx, dword [edi + 0x154]
mov edx, dword [edi + 0x190]
add edx, dword [esp + 0x14]
mov dword [esp + 0x44], ecx
lea esi, [ecx + eax]
mov dword [esp + 0x3c], edx
mov dword [esp + 0x20], esi
cmp ecx, esi
mov esi, dword [esp + 0x1c]
jge 0x468842
lea eax, [ebx + ebx]
mov edi, esi
mov dword [esp + 0x10], eax
mov ebx, ecx
mov esi, edx
mov ecx, dword [esi]
mov eax, ebx
cdq
sub eax, edx
sar eax, 1
add eax, dword [esi + 8]
cdq
push 1
push edx
push eax
lea eax, [esp + 0x44]
push eax
mov eax, dword [ecx]
push ecx
call eax
add esp, 0x14
cmp eax, 1
je 0x46880b
or al, 0xff
jmp 0x46880f
mov al, byte [esp + 0x38]
mov ecx, ebx
movsx eax, al
and ecx, 1
lea edx, [esi + 0x2cc]
shl ecx, 2
sar eax, cl
mov ecx, eax
call fcn.004ecd90
mov word [edi], ax
inc ebx
add edi, dword [esp + 0x10]
cmp ebx, dword [esp + 0x20]
jl 0x4687e4
mov edi, dword [esp + 0x30]
mov esi, dword [esp + 0x1c]
mov eax, dword [ebp + 8]
mov ecx, dword [esp + 0xc]
add esi, 2
add dword [esp + 0x14], 0x30c
inc ecx
mov ebx, dword [edi + 8]
mov dword [esp + 0xc], ecx
mov dword [esp + 0x1c], esi
cmp ecx, ebx
jl 0x4687b0
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0x1b0]
xor ecx, esp
call fcn.00502eb4
mov esp, ebp
pop ebp
ret
mov dword [esp + 0x10], 0
test ebx, ebx
jle case.default.0x466ca6
xor eax, eax
mov dword [esp + 0x4c], eax
mov edx, dword [edi + 0x190]
mov ecx, dword [edi + 0x154]
add edx, eax
xor eax, eax
mov dword [esp + 0x18], edx
mov dword [esp + 0x54], eax
mov dword [esp + 0x58], eax
mov byte [esp + 0x5c], al
movsx eax, word [edx + 0x2b4]
mov dword [esp + 0xc], eax
movsx eax, word [edx + 0x2b8]
mov dword [esp + 0x24], eax
mov eax, ecx
shr eax, 4
and ecx, 0xf
mov dword [esp + 0x14], ecx
mov ecx, dword [edx]
push 9
lea eax, [eax + eax*8]
add eax, dword [edx + 8]
cdq
push edx
push eax
lea eax, [esp + 0x60]
push eax
mov eax, dword [ecx]
push ecx
call eax
movzx eax, byte [esp + 0x68]
add esp, 0x14
mov ecx, eax
and eax, 0xf
shr ecx, 4
mov dword [esp + 0x44], ecx
movsx ecx, word [eax*4 + 0x52fd60]
movsx eax, word [eax*4 + 0x52fd62]
mov dword [esp + 0x3c], eax
mov eax, dword [ebp + 8]
mov dword [esp + 0x20], ecx
mov ecx, dword [esp + 0x14]
add eax, ecx
mov dword [esp + 0x34], eax
cmp ecx, eax
jge 0x4689c6
lea eax, [ebx + ebx]
mov edi, esi
mov ebx, dword [esp + 0xc]
mov esi, dword [esp + 0x24]
mov dword [esp + 0x28], eax
jmp 0x468940
mov eax, ecx
test eax, eax
jns 0x468949
add eax, 1
sar eax, 1
movzx edx, byte [esp + eax + 0x55]
test cl, 1
je 0x46895a
and edx, 0xf
jmp 0x46895d
shr edx, 4
mov edx, dword [edx*4 + 0x52fda0]
mov eax, dword [esp + 0x3c]
mov ecx, dword [esp + 0x44]
imul eax, esi
shl edx, cl
shl edx, 0xb
add edx, eax
mov eax, dword [esp + 0x20]
imul eax, ebx
add edx, eax
sar edx, 0xb
cmp edx, 0x7fff
jle 0x468991
mov edx, 0x7fff
jmp 0x46899e
cmp edx, 0xffff8000
jge 0x46899e
mov edx, 0xffff8000
mov ecx, dword [esp + 0x14]
mov esi, ebx
inc ecx
mov word [edi], dx
add edi, dword [esp + 0x28]
mov ebx, edx
mov dword [esp + 0x14], ecx
cmp ecx, dword [esp + 0x34]
jl 0x468940
mov edi, dword [esp + 0x30]
mov dword [esp + 0x24], esi
mov esi, dword [esp + 0x1c]
jmp 0x4689ca
mov ebx, dword [esp + 0xc]
mov ecx, dword [esp + 0x18]
add esi, 2
mov eax, dword [esp + 0x24]
add dword [esp + 0x4c], 0x30c
mov dword [esp + 0x1c], esi
mov word [ecx + 0x2b8], ax
mov eax, dword [esp + 0x10]
inc eax
mov word [ecx + 0x2b4], bx
mov ebx, dword [edi + 8]
cmp eax, ebx
mov dword [esp + 0x10], eax
mov eax, dword [esp + 0x4c]
jl 0x468890
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0x1b0]
xor ecx, esp
call fcn.00502eb4
mov esp, ebp
pop ebp
ret
mov eax, dword [edi + 0x188]
mov dword [esp + 0x44], eax
mov dword [esp + 0xc], 0
test ebx, ebx
jle case.default.0x466ca6
xor edx, edx
mov dword [esp + 0x10], edx
lea esp, [esp]
mov ecx, dword [edi + 0x190]
push eax
push dword [ebp + 8]
add ecx, edx
mov edx, esi
push dword [edi + 0x154]
push ebx
call fcn.004e36f0
mov eax, dword [esp + 0x1c]
add esp, 0x10
mov edx, dword [esp + 0x10]
inc eax
mov ebx, dword [edi + 8]
add edx, 0x30c
add esi, 2
mov dword [esp + 0xc], eax
cmp eax, ebx
mov dword [esp + 0x10], edx
mov eax, dword [esp + 0x44]
jl 0x468a40
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0x1b0]
xor ecx, esp
call fcn.00502eb4
mov esp, ebp
pop ebp
ret
mov dword [esp + 0xc], 0
test ebx, ebx
jle case.default.0x466ca6
xor edx, edx
mov dword [esp + 0x10], edx
lea ecx, [ecx]
push dword [edi + 0x188]
mov ecx, dword [edi + 0x190]
push 0
push dword [ebp + 8]
add ecx, edx
mov edx, esi
push dword [edi + 0x154]
push ebx
call fcn.004dbce0
mov eax, dword [esp + 0x20]
add esp, 0x14
mov edx, dword [esp + 0x10]
inc eax
mov ebx, dword [edi + 8]
add edx, 0x30c
add esi, 2
mov dword [esp + 0xc], eax
mov dword [esp + 0x10], edx
cmp eax, ebx
jl 0x468ab0
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0x1b0]
xor ecx, esp
call fcn.00502eb4
mov esp, ebp
pop ebp
ret
mov dword [esp + 0xc], 0
test ebx, ebx
jle case.default.0x466ca6
xor edx, edx
mov dword [esp + 0x10], edx
push dword [edi + 0x188]
mov ecx, dword [edi + 0x190]
push 1
push dword [ebp + 8]
add ecx, edx
mov edx, esi
push dword [edi + 0x154]
push ebx
call fcn.004dbce0
mov eax, dword [esp + 0x20]
add esp, 0x14
mov edx, dword [esp + 0x10]
inc eax
mov ebx, dword [edi + 8]
add edx, 0x30c
add esi, 2
mov dword [esp + 0xc], eax
mov dword [esp + 0x10], edx
cmp eax, ebx
jl 0x468b20
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0x1b0]
xor ecx, esp
call fcn.00502eb4
mov esp, ebp
pop ebp
ret
mov dword [esp + 0xc], 0
test ebx, ebx
jle case.default.0x466ca6
xor edx, edx
mov dword [esp + 0x10], edx
push dword [edi + 0x188]
mov ecx, dword [edi + 0x190]
push dword [edi + 0x34]
add ecx, edx
mov edx, esi
push dword [ebp + 8]
push dword [edi + 0x154]
push ebx
call fcn.004dbef0
mov eax, dword [esp + 0x20]
add esp, 0x14
mov edx, dword [esp + 0x10]
inc eax
mov ebx, dword [edi + 8]
add edx, 0x30c
add esi, 2
mov dword [esp + 0xc], eax
mov dword [esp + 0x10], edx
cmp eax, ebx
jl 0x468b90
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0x1b0]
xor ecx, esp
call fcn.00502eb4
mov esp, ebp
pop ebp
ret
mov dword [esp + 0x10], 0
test ebx, ebx
jle case.default.0x466ca6
xor edx, edx
mov dword [esp + 0x20], edx
jmp 0x468c10
mov esi, dword [edi + 0x190]
lea eax, [esp + 0x78]
mov ebx, dword [edi + 0x154]
add esi, edx
push 0x50
push 0
push eax
mov dword [esp + 0x18], esi
call fcn.00504370
mov eax, dword [esi + 0x2b4]
xor edx, edx
mov edi, dword [edi + 0x34]
add esp, 0xc
mov dword [esp + 0x18], eax
mov eax, dword [esi + 0x2b8]
mov dword [esp + 0x14], eax
mov eax, ebx
lea ecx, [edi*2 - 2]
div ecx
xor edx, edx
mov esi, eax
mov eax, ebx
div ecx
mov eax, dword [esp + 0xc]
imul esi, edi
mov ebx, edx
push edi
mov ecx, dword [eax]
add esi, dword [eax + 8]
mov eax, esi
cdq
push edx
push eax
lea eax, [esp + 0x84]
push eax
mov eax, dword [ecx]
push ecx
call eax
mov cl, byte [esp + 0x8c]
add esp, 0x14
mov dl, cl
and cl, 0xf
shr dl, 4
cmp dl, 5
jbe 0x468c99
mov dl, 5
cmp cl, 0xc
jbe 0x468ca0
mov cl, 0xc
mov eax, dword [ebp + 8]
add eax, ebx
mov dword [esp + 0x28], eax
cmp ebx, eax
jge 0x468d68
mov edi, dword [esp + 0x1c]
movzx eax, dl
fld dword [eax*8 + 0x52eaac]
fld dword [eax*8 + 0x52eaa8]
mov al, 0x14
sub al, cl
mov ecx, dword [esp + 0x2c]
movzx eax, al
mov dword [esp + 0x44], eax
lea eax, [ecx + ecx]
mov dword [esp + 0x3c], eax
mov eax, ebx
test eax, eax
jns 0x468ce5
add eax, 1
sar eax, 1
movzx esi, byte [esp + eax + 0x79]
test bl, 1
je 0x468cf6
shr esi, 4
jmp 0x468cf9
and esi, 0xf
fild dword [esp + 0x18]
mov esi, dword [esi*4 + 0x52eb28]
fmul st(1)
fild dword [esp + 0x14]
fmul st(3)
faddp st(1)
fmul dword [0x5f8c38]
call fcn.0051f100
mov ecx, dword [esp + 0x44]
shl esi, cl
sub esi, eax
sar esi, 8
cmp esi, 0x7fff
jle 0x468d33
mov eax, 0x7fff
jmp 0x468d42
mov eax, 0xffff8000
cmp esi, 0xffff8000
jl 0x468d42
mov eax, esi
mov word [edi], ax
inc ebx
mov eax, dword [esp + 0x18]
add edi, dword [esp + 0x3c]
mov dword [esp + 0x14], eax
mov eax, esi
mov dword [esp + 0x18], eax
cmp ebx, dword [esp + 0x28]
jl 0x468cdc
fstp st(1)
fstp st(0)
jmp 0x468d6c
mov eax, dword [esp + 0x18]
mov ecx, dword [esp + 0xc]
mov edi, dword [esp + 0x30]
mov edx, dword [esp + 0x20]
add dword [esp + 0x1c], 2
add edx, 0x30c
mov dword [ecx + 0x2b4], eax
mov eax, dword [esp + 0x14]
mov dword [ecx + 0x2b8], eax
mov ecx, dword [esp + 0x10]
mov eax, dword [edi + 8]
inc ecx
mov dword [esp + 0x10], ecx
mov dword [esp + 0x20], edx
mov dword [esp + 0x2c], eax
cmp ecx, eax
jl 0x468c10
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0x1b0]
xor ecx, esp
call fcn.00502eb4
mov esp, ebp
pop ebp
ret
mov dword [esp + 0xc], 0
test ebx, ebx
jle case.default.0x466ca6
xor edx, edx
mov dword [esp + 0x10], edx
lea ebx, [ebx]
push dword [ebp + 8]
mov ecx, dword [edi + 0x190]
push dword [edi + 0x154]
add ecx, edx
mov edx, esi
push ebx
call fcn.004ef3c0
mov eax, dword [esp + 0x18]
add esp, 0xc
mov edx, dword [esp + 0x10]
inc eax
mov ebx, dword [edi + 8]
add edx, 0x30c
add esi, 2
mov dword [esp + 0xc], eax
mov dword [esp + 0x10], edx
cmp eax, ebx
jl 0x468de0
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0x1b0]
xor ecx, esp
call fcn.00502eb4
mov esp, ebp
pop ebp
ret
mov eax, dword [edi + 0x190]
push 0x80
push 0
mov edi, dword [eax]
mov esi, dword [eax + 8]
xor eax, eax
cmp ebx, 1
setg al
inc eax
mov dword [esp + 0x104], eax
xor eax, eax
cmp edx, 0x1e
sete al
mov dword [esp + 0x114], eax
xor eax, eax
cmp edx, 0x1f
sete al
xor ecx, ecx
cmp edx, 0x1e
mov dword [esp + 0x118], eax
setne cl
sub edx, 0x1e
neg edx
sbb edx, edx
and edx, 0x70
lea ecx, [ecx*4 + 4]
mov dword [esp + 0x110], ecx
lea eax, [edx + 0x70]
cdq
idiv ebx
mov ebx, dword [esp + 0x38]
mov ecx, eax
mov eax, dword [ebx + 0x154]
cdq
idiv ecx
shl eax, 7
add eax, esi
mov dword [esp + 0x4c], edx
push eax
lea eax, [esp + 0x84]
push eax
mov eax, dword [edi]
push edi
call eax
add esp, 0x14
cmp eax, 0x80
je 0x468ee1
mov ecx, 0x80
sub ecx, eax
push ecx
lea ecx, [esp + 0x7c]
add eax, ecx
push 0
push eax
call fcn.00504370
add esp, 0xc
xor ecx, ecx
mov dword [esp + 0xc], ecx
cmp dword [esp + 0xfc], ecx
jle case.default.0x466ca6
mov edi, dword [esp + 0x1c]
xor eax, eax
mov dword [esp + 0x10], eax
mov edi, edi
mov esi, dword [ebx + 0x190]
mov edx, dword [esp + 0x44]
add esi, eax
mov dword [esp + 0xf8], edi
push ecx
push dword [ebp + 8]
mov eax, dword [esi + 0x2b4]
lea ecx, [esp + 0x80]
mov dword [esp + 0x108], eax
mov eax, dword [esi + 0x2b8]
mov dword [esp + 0x10c], eax
call fcn.004ecf10
mov eax, dword [esp + 0x108]
add esp, 8
mov ecx, dword [esp + 0xc]
add edi, 2
mov dword [esi + 0x2b4], eax
inc ecx
mov eax, dword [esp + 0x104]
mov dword [esi + 0x2b8], eax
mov eax, dword [esp + 0x10]
add eax, 0x30c
mov dword [esp + 0xc], ecx
mov dword [esp + 0x10], eax
cmp ecx, dword [esp + 0xfc]
jl 0x468f00
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0x1b0]
xor ecx, esp
call fcn.00502eb4
mov esp, ebp
pop ebp
ret
cmp ebx, 1
jle 0x468fac
cmp edx, 0x25
jne 0x468fac
mov ecx, 1
xor eax, eax
mov dword [esp + 0x10], ecx
mov dword [esp + 0x14], eax
jmp 0x468fc0
xor eax, eax
xor ecx, ecx
mov dword [esp + 0x14], eax
mov dword [esp + 0x10], ecx
test ebx, ebx
jle case.default.0x466ca6
xor edx, edx
mov dword [esp + 0xc], edx
push ecx
mov ecx, dword [edi + 0x190]
push eax
push dword [ebp + 8]
add ecx, edx
mov edx, esi
push dword [edi + 0x154]
push ebx
call fcn.004eef60
mov eax, dword [esp + 0x28]
add esp, 0x14
mov edx, dword [esp + 0xc]
inc eax
mov ebx, dword [edi + 8]
add edx, 0x30c
mov ecx, dword [esp + 0x10]
add esi, 2
mov dword [esp + 0x14], eax
mov dword [esp + 0xc], edx
cmp eax, ebx
jl 0x468fc6
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0x1b0]
xor ecx, esp
call fcn.00502eb4
mov esp, ebp
pop ebp
ret
mov dword [esp + 0xc], 0
test ebx, ebx
jle case.default.0x466ca6
xor edx, edx
mov dword [esp + 0x10], edx
jmp 0x469040
push dword [ebp + 8]
mov ecx, dword [edi + 0x190]
push dword [edi + 0x154]
add ecx, edx
mov edx, esi
push ebx
call fcn.004eed30
mov eax, dword [esp + 0x18]
add esp, 0xc
mov edx, dword [esp + 0x10]
inc eax
mov ebx, dword [edi + 8]
add edx, 0x30c
add esi, 2
mov dword [esp + 0xc], eax
mov dword [esp + 0x10], edx
cmp eax, ebx
jl 0x469040
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0x1b0]
xor ecx, esp
call fcn.00502eb4
mov esp, ebp
pop ebp
ret
xor eax, eax
mov dword [esp + 0xc], eax
test ebx, ebx
jle case.default.0x466ca6
xor edx, edx
mov dword [esp + 0x10], edx
mov ecx, dword [edi + 0x190]
push eax
push dword [ebp + 8]
add ecx, edx
mov edx, esi
push dword [edi + 0x154]
push ebx
call fcn.004ef1c0
mov eax, dword [esp + 0x1c]
add esp, 0x10
mov edx, dword [esp + 0x10]
inc eax
mov ebx, dword [edi + 8]
add edx, 0x30c
add esi, 2
mov dword [esp + 0xc], eax
mov dword [esp + 0x10], edx
cmp eax, ebx
jl 0x4690a6
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0x1b0]
xor ecx, esp
call fcn.00502eb4
mov esp, ebp
pop ebp
ret
mov dword [esp + 0xc], 0
test ebx, ebx
jle case.default.0x466ca6
xor edx, edx
mov dword [esp + 0x10], edx
nop
push dword [ebp + 8]
mov ecx, dword [edi + 0x190]
push dword [edi + 0x154]
add ecx, edx
mov edx, esi
push ebx
call fcn.004ed350
mov eax, dword [esp + 0x18]
add esp, 0xc
mov edx, dword [esp + 0x10]
inc eax
mov ebx, dword [edi + 8]
add edx, 0x30c
add esi, 2
mov dword [esp + 0xc], eax
mov dword [esp + 0x10], edx
cmp eax, ebx
jl 0x469110
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0x1b0]
xor ecx, esp
call fcn.00502eb4
mov esp, ebp
pop ebp
ret
xor eax, eax
mov dword [esp + 0xc], eax
test ebx, ebx
jle case.default.0x466ca6
xor edx, edx
mov dword [esp + 0x10], edx
mov ecx, dword [edi + 0x190]
push eax
push dword [ebp + 8]
add ecx, edx
mov edx, esi
push dword [edi + 0x154]
push ebx
call fcn.004ed140
mov eax, dword [esp + 0x1c]
add esp, 0x10
mov edx, dword [esp + 0x10]
inc eax
mov ebx, dword [edi + 8]
add edx, 0x30c
add esi, 2
mov dword [esp + 0xc], eax
mov dword [esp + 0x10], edx
cmp eax, ebx
jl 0x469176
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0x1b0]
xor ecx, esp
call fcn.00502eb4
mov esp, ebp
pop ebp
ret
mov ecx, dword [edi + 0x1a4]
xor edx, edx
mov edi, dword [ebp + 8]
mov dword [esp + 0x28], ecx
mov dword [esp + 0x18], edx
test edi, edi
jle case.default.0x466ca6
mov eax, edi
sub eax, edx
lea edx, [ecx + 0x2d4]
push edx
push eax
mov dword [esp + 0x44], eax
lea eax, [esp + 0x4c]
push eax
push ecx
call dword [sym.imp.libvorbis.dll_ov_read_float]
mov ecx, eax
add esp, 0x10
mov dword [esp + 0x20], ecx
test ecx, ecx
jle 0x46936a
mov eax, dword [esp + 0x28]
mov edx, dword [eax + 0x2e0]
mov dword [esp + 0xc], edx
test edx, edx
je 0x46925e
cmp edx, ecx
jle 0x469250
sub edx, ecx
mov dword [eax + 0x2e0], edx
mov edx, dword [esp + 0x18]
mov ecx, dword [esp + 0x28]
cmp edx, edi
jl 0x4691e4
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0x1b0]
xor ecx, esp
call fcn.00502eb4
mov esp, ebp
pop ebp
ret
mov dword [eax + 0x2e0], 0
je 0x46922f
jmp 0x469264
xor edx, edx
mov dword [esp + 0xc], edx
mov eax, dword [eax + 0x2d8]
mov dword [esp + 0x3c], eax
mov eax, dword [esp + 0x44]
mov dword [esp + 0x34], eax
xor eax, eax
mov dword [esp + 0x14], eax
test ebx, ebx
jle 0x46934d
mov edi, esi
mov esi, dword [esp + 0x20]
mov dword [esp + 0x10], edi
mov edi, edi
cmp dword [esp + 0x3c], 0
je 0x46929b
mov ecx, eax
jmp 0x4692b2
cmp ebx, 8
jle 0x4692a4
mov ecx, eax
jmp 0x4692b2
lea eax, [eax + ebx*8]
mov ecx, dword [eax*4 + 0x5283e0]
mov eax, dword [esp + 0x14]
mov dword [esp + 0x24], edi
mov edi, dword [esp + 0x34]
mov ecx, dword [edi + ecx*4]
mov edi, edx
mov dword [esp + 0x30], ecx
cmp edx, esi
jge 0x46932a
lea eax, [ebx + ebx]
mov ebx, dword [esp + 0x24]
mov dword [esp + 0x4c], eax
fld dword [ecx + edi*4]
sub esp, 8
fmul dword [0x5f8bf4]
fadd dword [0x5f8a1c]
fstp qword [esp]
call fcn.0051f540
add esp, 8
call fcn.0051f100
cmp eax, 0x7fff
jle 0x469302
mov eax, 0x7fff
jmp 0x46930e
cmp eax, 0xffff8000
jge 0x46930e
mov eax, 0xffff8000
mov ecx, dword [esp + 0x30]
inc edi
mov word [ebx], ax
add ebx, dword [esp + 0x4c]
cmp edi, esi
jl 0x4692d2
mov ebx, dword [esp + 0x2c]
mov eax, dword [esp + 0x14]
mov edx, dword [esp + 0xc]
mov edi, dword [esp + 0x10]
inc eax
add edi, 2
mov dword [esp + 0x14], eax
mov dword [esp + 0x10], edi
cmp eax, ebx
jl 0x469290
mov esi, dword [esp + 0x1c]
mov edi, dword [ebp + 8]
mov ecx, dword [esp + 0x20]
sub ecx, edx
mov edx, dword [esp + 0x18]
mov eax, ecx
imul eax, ebx
add edx, ecx
mov dword [esp + 0x18], edx
lea esi, [esi + eax*2]
mov dword [esp + 0x1c], esi
jmp 0x469233
mov eax, dword [esp + 0x3c]
imul eax, ebx
add eax, eax
push eax
push 0
push esi
call fcn.00504370
add esp, 0xc
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0x1b0]
xor ecx, esp
call fcn.00502eb4
mov esp, ebp
pop ebp
ret
push ebx
push dword [ebp + 8]
mov edx, esi
call fcn.004e95e0
add esp, 8
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0x1b0]
xor ecx, esp
call fcn.00502eb4
mov esp, ebp
pop ebp
ret
mov edx, dword [edi + 0x1a4]
mov edi, dword [ebp + 8]
mov dword [esp + 0x18], edx
test edi, edi
jle case.default.0x466ca6
lea eax, [edx + 8]
lea ecx, [edx + 4]
mov dword [esp + 0x10], eax
cmp dword [eax], 0
jne 0x4693f6
mov edx, dword [edx]
push eax
mov eax, dword [esp + 0x1c]
push ecx
mov ecx, dword [eax + 0xc]
call fcn.004f8640
add esp, 8
test eax, eax
je 0x46945e
mov eax, dword [esp + 0x10]
mov eax, dword [eax]
cdq
idiv ebx
mov dword [esp + 0xc], eax
cmp eax, edi
jle 0x469409
mov eax, edi
mov dword [esp + 0xc], edi
mov edx, eax
xor ecx, ecx
imul edx, ebx
test edx, edx
jle 0x469430
mov ebx, dword [esp + 0x18]
jmp 0x469420
mov eax, dword [ebx + 4]
mov ax, word [eax + ecx*2]
mov word [esi + ecx*2], ax
inc ecx
cmp ecx, edx
jl 0x469420
mov ebx, dword [esp + 0x18]
lea eax, [edx + edx]
sub edi, dword [esp + 0xc]
lea ecx, [ebx + 4]
add dword [ecx], eax
add esi, eax
sub dword [ebx + 8], edx
mov ebx, dword [esp + 0x2c]
test edi, edi
jle case.default.0x466ca6
mov eax, dword [esp + 0x10]
mov edx, dword [esp + 0x18]
jmp 0x4693d6
imul edi, ebx
add edi, edi
push edi
push 0
push esi
call fcn.00504370
add esp, 0xc
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0x1b0]
xor ecx, esp
call fcn.00502eb4
mov esp, ebp
pop ebp
ret
push dword [ebp + 8]
mov edx, dword [edi + 0x1a4]
mov ecx, dword [edi + 0x190]
push esi
call fcn.004ec290
add esp, 8
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0x1b0]
xor ecx, esp
call fcn.00502eb4
mov esp, ebp
pop ebp
ret
push dword [ebp + 8]
mov ecx, dword [edi + 0x1a4]
mov edx, esi
call fcn.0040aab0
add esp, 4
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0x1b0]
xor ecx, esp
call fcn.00502eb4
mov esp, ebp
pop ebp
ret
push dword [ebp + 8]
mov edx, esi
call fcn.004ed750
add esp, 4
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0x1b0]
xor ecx, esp
call fcn.00502eb4
mov esp, ebp
pop ebp
ret
mov eax, dword [edi + 0x1a4]
mov ebx, dword [ebp + 8]
mov dword [esp + 0x44], eax
mov edi, dword [eax + 4]
test ebx, ebx
jle case.default.0x466ca6
mov ecx, dword [eax + 8]
mov edx, esi
push ebx
call fcn.004fd7a0
add esp, 4
test eax, eax
jle 0x46945e
mov ecx, eax
sub ebx, eax
mov eax, dword [esp + 0x44]
imul ecx, edi
lea esi, [esi + ecx*2]
test ebx, ebx
jg 0x469513
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0x1b0]
xor ecx, esp
call fcn.00502eb4
mov esp, ebp
pop ebp
ret
push ebx
push dword [ebp + 8]
mov edx, esi
call fcn.0040a3f0
add esp, 8
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0x1b0]
xor ecx, esp
call fcn.00502eb4
mov esp, ebp
pop ebp
ret
mov dword [esp + 0xc], 0
test ebx, ebx
jle case.default.0x466ca6
xor edx, edx
mov dword [esp + 0x10], edx
lea esp, [esp]
mov ecx, dword [edi + 0x190]
push 0x600518
push dword [ebp + 8]
add ecx, edx
mov edx, esi
push dword [edi + 0x154]
push ebx
call fcn.004eda10
mov eax, dword [esp + 0x1c]
add esp, 0x10
mov edx, dword [esp + 0x10]
inc eax
mov ebx, dword [edi + 8]
add edx, 0x30c
add esi, 2
mov dword [esp + 0xc], eax
mov dword [esp + 0x10], edx
cmp eax, ebx
jl 0x469590
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0x1b0]
xor ecx, esp
call fcn.00502eb4
mov esp, ebp
pop ebp
ret
mov dword [esp + 0xc], 0
test ebx, ebx
jle case.default.0x466ca6
xor edx, edx
mov dword [esp + 0x10], edx
lea ecx, [ecx]
mov ecx, dword [edi + 0x190]
push 0x600518
push dword [ebp + 8]
add ecx, edx
mov edx, esi
push dword [edi + 0x154]
push ebx
call fcn.004edab0
mov eax, dword [esp + 0x1c]
add esp, 0x10
mov edx, dword [esp + 0x10]
inc eax
mov ebx, dword [edi + 8]
add edx, 0x30c
add esi, 2
mov dword [esp + 0xc], eax
mov dword [esp + 0x10], edx
cmp eax, ebx
jl 0x469600
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0x1b0]
xor ecx, esp
call fcn.00502eb4
mov esp, ebp
pop ebp
ret
mov dword [esp + 0xc], 0
test ebx, ebx
jle case.default.0x466ca6
xor edx, edx
mov dword [esp + 0x10], edx
lea ecx, [ecx]
mov ecx, dword [edi + 0x190]
push 0x600318
push dword [ebp + 8]
add ecx, edx
mov edx, esi
push dword [edi + 0x154]
push ebx
call fcn.004eda10
mov eax, dword [esp + 0x1c]
add esp, 0x10
mov edx, dword [esp + 0x10]
inc eax
mov ebx, dword [edi + 8]
add edx, 0x30c
add esi, 2
mov dword [esp + 0xc], eax
mov dword [esp + 0x10], edx
cmp eax, ebx
jl 0x469670
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0x1b0]
xor ecx, esp
call fcn.00502eb4
mov esp, ebp
pop ebp
ret
mov dword [esp + 0xc], 0
test ebx, ebx
jle case.default.0x466ca6
xor edx, edx
mov dword [esp + 0x10], edx
lea ecx, [ecx]
mov ecx, dword [edi + 0x190]
push 0x600318
push dword [ebp + 8]
add ecx, edx
mov edx, esi
push dword [edi + 0x154]
push ebx
call fcn.004edab0
mov eax, dword [esp + 0x1c]
add esp, 0x10
mov edx, dword [esp + 0x10]
inc eax
mov ebx, dword [edi + 8]
add edx, 0x30c
add esi, 2
mov dword [esp + 0xc], eax
mov dword [esp + 0x10], edx
cmp eax, ebx
jl 0x4696e0
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0x1b0]
xor ecx, esp
call fcn.00502eb4
mov esp, ebp
pop ebp
ret
mov dword [esp + 0x10], 0
test ebx, ebx
jle case.default.0x466ca6
mov eax, dword [ebp + 8]
mov dword [esp + 0x24], 0
jmp 0x469760
mov ecx, dword [edi + 0x190]
add ecx, dword [esp + 0x24]
mov edx, dword [edi + 0x154]
mov dword [esp + 0x14], ecx
mov dword [esp + 0x44], edx
mov ecx, dword [ecx + 0x2b4]
mov dword [esp + 0xc], ecx
mov ecx, dword [esp + 0x14]
mov esi, dword [ecx + 8]
mov dword [esp + 0x20], esi
lea esi, [edx + eax]
mov dword [esp + 0x34], esi
cmp edx, esi
mov esi, dword [esp + 0x1c]
jge 0x469836
lea eax, [ebx + ebx]
mov edi, edx
mov ebx, dword [esp + 0xc]
mov dword [esp + 0x28], eax
lea ecx, [ecx]
mov eax, dword [esp + 0x20]
mov ecx, dword [ecx]
add eax, edi
cdq
push 1
push edx
push eax
lea eax, [esp + 0x44]
push eax
mov eax, dword [ecx]
push ecx
call eax
add esp, 0x14
cmp eax, 1
je 0x4697d4
or cl, 0xff
jmp 0x4697d8
mov cl, byte [esp + 0x38]
movzx eax, cl
and eax, 0x7f
cmp eax, 0x5f
jbe 0x4697e8
mov eax, 0x5f
mov eax, dword [eax*4 + 0x530dc8]
test cl, cl
jns 0x4697f7
sub ebx, eax
jmp 0x4697f9
add ebx, eax
cmp ebx, 0x7fff
jle 0x469808
mov eax, 0x7fff
jmp 0x469817
mov eax, 0xffff8000
cmp ebx, 0xffff8000
jl 0x469817
mov eax, ebx
mov ecx, dword [esp + 0x14]
inc edi
mov word [esi], ax
add esi, dword [esp + 0x28]
cmp edi, dword [esp + 0x34]
jl 0x4697b0
mov edi, dword [esp + 0x30]
mov esi, dword [esp + 0x1c]
mov eax, dword [ebp + 8]
jmp 0x46983a
mov ebx, dword [esp + 0xc]
add dword [esp + 0x24], 0x30c
add esi, 2
mov dword [ecx + 0x2b4], ebx
mov ecx, dword [esp + 0x10]
mov ebx, dword [edi + 8]
inc ecx
mov dword [esp + 0x10], ecx
mov dword [esp + 0x1c], esi
cmp ecx, ebx
jl 0x469760
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0x1b0]
xor ecx, esp
call fcn.00502eb4
mov esp, ebp
pop ebp
ret
mov dword [esp + 0x10], 0
test ebx, ebx
jle case.default.0x466ca6
mov eax, dword [ebp + 8]
mov dword [esp + 0x24], 0
jmp 0x4698a0
mov ecx, dword [edi + 0x190]
add ecx, dword [esp + 0x24]
mov edx, dword [edi + 0x154]
mov dword [esp + 0x14], ecx
mov dword [esp + 0x44], edx
mov esi, dword [ecx + 8]
mov ecx, dword [ecx + 0x2b4]
mov dword [esp + 0xc], ecx
mov ecx, dword [esp + 0x14]
mov dword [esp + 0x20], esi
mov esi, dword [ecx + 0x2c8]
mov dword [esp + 0x28], esi
lea esi, [edx + eax]
mov dword [esp + 0x4c], esi
cmp edx, esi
mov esi, dword [esp + 0x1c]
jge 0x46995b
lea eax, [ebx + ebx]
mov edi, edx
mov ebx, dword [esp + 0xc]
mov dword [esp + 0x34], eax
mov eax, dword [esp + 0x20]
mov ecx, dword [ecx]
add eax, edi
cdq
push 1
push edx
push eax
lea eax, [esp + 0x44]
push eax
mov eax, dword [ecx]
push ecx
call eax
add esp, 0x14
cmp eax, 1
je 0x46991c
or ecx, 0xffffffff
mov ebx, ecx
shl ebx, 9
jmp 0x46993c
mov al, byte [esp + 0x38]
movsx ecx, al
test al, al
jns 0x46992e
mov ebx, ecx
shl ebx, 9
jmp 0x46993c
mov eax, dword [ecx*4 + 0x531c58]
imul eax, dword [esp + 0x28]
add ebx, eax
mov ecx, dword [esp + 0x14]
inc edi
mov word [esi], bx
add esi, dword [esp + 0x34]
cmp edi, dword [esp + 0x4c]
jl 0x4698f3
mov edi, dword [esp + 0x30]
mov esi, dword [esp + 0x1c]
mov eax, dword [ebp + 8]
jmp 0x46995f
mov ebx, dword [esp + 0xc]
add dword [esp + 0x24], 0x30c
add esi, 2
mov dword [ecx + 0x2b4], ebx
mov ecx, dword [esp + 0x10]
mov ebx, dword [edi + 8]
inc ecx
mov dword [esp + 0x10], ecx
mov dword [esp + 0x1c], esi
cmp ecx, ebx
jl 0x4698a0
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0x1b0]
xor ecx, esp
call fcn.00502eb4
mov esp, ebp
pop ebp
ret
mov dword [esp + 0x20], 0
test ebx, ebx
jle case.default.0x466ca6
mov eax, dword [ebp + 8]
mov dword [esp + 0x14], 0
jmp 0x4699c0
mov ecx, dword [edi + 0x190]
add ecx, dword [esp + 0x14]
mov edx, dword [edi + 0x154]
mov dword [esp + 0x2c], ecx
mov esi, dword [esp + 0x2c]
mov ecx, dword [ecx + 0x2b4]
mov dword [esp + 0x10], ecx
mov ecx, dword [esp + 0x2c]
mov esi, dword [esi + 8]
mov dword [esp + 0x3c], esi
lea esi, [edx + eax]
mov dword [esp + 0x34], esi
cmp edx, esi
mov ecx, dword [ecx + 0x2c8]
mov esi, dword [esp + 0x1c]
mov dword [esp + 0x44], edx
mov dword [esp + 0x18], ecx
jge 0x469aaa
lea eax, [ebx + ebx]
mov dword [esp + 0xc], esi
mov ebx, dword [esp + 0x10]
mov edi, ecx
mov dword [esp + 0x28], eax
mov esi, edx
mov eax, dword [esp + 0x2c]
push 1
mov ecx, dword [eax]
mov eax, dword [esp + 0x40]
add eax, esi
cdq
push edx
push eax
lea eax, [esp + 0x44]
push eax
mov eax, dword [ecx]
push ecx
call eax
add esp, 0x14
mov ecx, edi
cmp eax, 1
je 0x469a51
mov eax, 1
shl eax, cl
sub ebx, eax
jmp 0x469a7f
mov dl, byte [esp + 0x38]
movsx eax, dl
shl eax, cl
add ebx, eax
test dl, dl
jne 0x469a67
test edi, edi
jle 0x469a7f
dec edi
jmp 0x469a7f
mov dword [esp + 0x44], ebx
cmp dl, 0x7f
je 0x469a79
mov dword [esp + 0x44], ebx
cmp dl, 0x80
jne 0x469a7f
cmp edi, 8
jge 0x469a7f
inc edi
mov eax, dword [esp + 0xc]
inc esi
mov word [eax], bx
add eax, dword [esp + 0x28]
mov dword [esp + 0xc], eax
cmp esi, dword [esp + 0x34]
jl 0x469a21
mov esi, dword [esp + 0x1c]
mov eax, dword [ebp + 8]
mov dword [esp + 0x18], edi
mov edi, dword [esp + 0x30]
mov ecx, dword [esp + 0x18]
jmp 0x469aae
mov ebx, dword [esp + 0x10]
mov edx, dword [esp + 0x2c]
add esi, 2
add dword [esp + 0x14], 0x30c
mov dword [esp + 0x1c], esi
mov dword [edx + 0x2c8], ecx
mov ecx, dword [esp + 0x20]
inc ecx
mov dword [edx + 0x2b4], ebx
mov ebx, dword [edi + 8]
mov dword [esp + 0x20], ecx
cmp ecx, ebx
jl 0x4699c0
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0x1b0]
xor ecx, esp
call fcn.00502eb4
mov esp, ebp
pop ebp
ret
cmp ebx, 1
jle 0x469b0f
cmp edx, 0x2b
je 0x469b05
cmp edx, 0x2d
jne 0x469b0f
mov dword [esp + 0xc], 1
jmp 0x469b17
mov dword [esp + 0xc], 0
cmp edx, 0x2d
je 0x469b25
cmp edx, 0x2e
je 0x469b25
xor ecx, ecx
jmp 0x469b2a
mov ecx, 1
xor eax, eax
mov dword [esp + 0x28], ecx
mov dword [esp + 0x10], eax
test ebx, ebx
jle case.default.0x466ca6
xor edx, edx
mov dword [esp + 0x20], edx
push ecx
push dword [esp + 0x10]
mov ecx, dword [edi + 0x190]
push eax
push dword [ebp + 8]
add ecx, edx
mov edx, esi
push dword [edi + 0x154]
push ebx
call fcn.004ddfb0
mov eax, dword [esp + 0x28]
add esp, 0x18
mov edx, dword [esp + 0x20]
inc eax
mov ebx, dword [edi + 8]
add edx, 0x30c
mov ecx, dword [esp + 0x28]
add esi, 2
mov dword [esp + 0x10], eax
mov dword [esp + 0x20], edx
cmp eax, ebx
jl 0x469b42
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0x1b0]
xor ecx, esp
call fcn.00502eb4
mov esp, ebp
pop ebp
ret
xor ecx, ecx
cmp ebx, 1
setg cl
xor eax, eax
mov dword [esp + 0x44], ecx
mov dword [esp + 0xc], eax
test ebx, ebx
jle case.default.0x466ca6
xor edx, edx
mov dword [esp + 0x10], edx
mov edi, edi
push ecx
mov ecx, dword [edi + 0x190]
push eax
push dword [ebp + 8]
add ecx, edx
mov edx, esi
push dword [edi + 0x154]
push ebx
call fcn.004de130
mov eax, dword [esp + 0x20]
add esp, 0x14
mov edx, dword [esp + 0x10]
inc eax
mov ebx, dword [edi + 8]
add edx, 0x30c
mov ecx, dword [esp + 0x44]
add esi, 2
mov dword [esp + 0xc], eax
mov dword [esp + 0x10], edx
cmp eax, ebx
jl 0x469bc0
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0x1b0]
xor ecx, esp
call fcn.00502eb4
mov esp, ebp
pop ebp
ret
mov dword [esp + 0x20], 0
test ebx, ebx
jle case.default.0x466ca6
mov eax, dword [ebp + 8]
xor edx, edx
mov dword [esp + 0x28], edx
jmp 0x469c40
mov ecx, dword [edi + 0x154]
mov dword [esp + 0xc], ecx
mov ecx, dword [edi + 0x190]
mov edi, dword [esp + 0xc]
add ecx, edx
mov dword [esp + 0x10], ecx
mov edx, dword [ecx + 0x2b4]
lea esi, [edi + eax]
mov ecx, dword [ecx + 0x2c4]
cmp edi, esi
mov edi, dword [esp + 0x30]
mov dword [esp + 0x34], esi
mov esi, dword [esp + 0x1c]
mov dword [esp + 0x18], edx
mov dword [esp + 0x14], ecx
jge 0x469d7a
lea eax, [ebx + ebx]
mov edi, edx
mov ebx, dword [esp + 0xc]
mov dword [esp + 0x3c], eax
mov eax, ebx
mov ecx, ebx
cdq
and ecx, 1
sub eax, edx
shl ecx, 2
mov edx, dword [esp + 0x10]
sar eax, 1
mov dword [esp + 0x44], ecx
push 1
add eax, dword [edx + 8]
mov ecx, dword [edx]
cdq
push edx
push eax
lea eax, [esp + 0x44]
push eax
mov eax, dword [ecx]
push ecx
call eax
add esp, 0x14
cmp eax, 1
je 0x469cc9
or al, 0xff
jmp 0x469ccd
mov al, byte [esp + 0x38]
mov cl, byte [esp + 0x44]
movsx edx, al
lea eax, [edi*8]
sar edx, cl
mov ecx, dword [esp + 0x14]
and edx, 0xf
mov edi, edx
mov dword [esp + 0x44], eax
and edi, 7
add edi, edi
lea eax, [edi + 1]
imul eax, dword [ecx*4 + 0x52ecc0]
test dl, 8
je 0x469d0b
mov eax, edi
not eax
imul eax, dword [ecx*4 + 0x52ecc0]
mov edi, dword [esp + 0x44]
add edi, eax
sar edi, 3
cmp edi, 0x7fff
jle 0x469d23
mov edi, 0x7fff
jmp 0x469d30
cmp edi, 0xffff8000
jge 0x469d30
mov edi, 0xffff8000
mov eax, dword [edx*4 + 0x52ec60]
add eax, ecx
xor ecx, ecx
test eax, eax
sets cl
dec ecx
and ecx, eax
mov dword [esp + 0x14], ecx
cmp ecx, 0x58
jle 0x469d55
mov ecx, 0x58
mov dword [esp + 0x14], ecx
mov word [esi], di
inc ebx
add esi, dword [esp + 0x3c]
cmp ebx, dword [esp + 0x34]
jl 0x469c92
mov esi, dword [esp + 0x1c]
mov eax, dword [ebp + 8]
mov dword [esp + 0x18], edi
mov edi, dword [esp + 0x30]
mov edx, dword [esp + 0x18]
mov ebx, dword [esp + 0x10]
add esi, 2
mov dword [esp + 0x1c], esi
mov dword [ebx + 0x2c4], ecx
mov ecx, dword [esp + 0x20]
mov dword [ebx + 0x2b4], edx
inc ecx
mov edx, dword [esp + 0x28]
mov ebx, dword [edi + 8]
add edx, 0x30c
mov dword [esp + 0x20], ecx
mov dword [esp + 0x28], edx
cmp ecx, ebx
jl 0x469c40
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0x1b0]
xor ecx, esp
call fcn.00502eb4
mov esp, ebp
pop ebp
ret
mov dword [esp + 0x10], 0
test ebx, ebx
jle case.default.0x466ca6
mov eax, dword [ebp + 8]
mov dword [esp + 0x4c], 0
jmp 0x469df0
mov ecx, dword [edi + 0x190]
add ecx, dword [esp + 0x4c]
mov edx, dword [edi + 0x154]
mov dword [esp + 0x24], ecx
mov dword [esp + 0x44], edx
mov ecx, dword [ecx + 0x2b4]
mov dword [esp + 0xc], ecx
lea esi, [edx + eax]
mov ecx, dword [esp + 0x24]
cmp edx, esi
mov dword [esp + 0x28], esi
mov esi, dword [esp + 0x1c]
mov ecx, dword [ecx + 0x2c4]
mov dword [esp + 0x14], ecx
jge 0x469f14
lea eax, [ebx + ebx]
mov edi, edx
mov ebx, dword [esp + 0xc]
mov dword [esp + 0x20], eax
mov eax, edi
lea ecx, [edi*4]
cdq
not ecx
sub eax, edx
and ecx, 4
mov edx, dword [esp + 0x24]
sar eax, 1
mov dword [esp + 0x44], ecx
push 1
add eax, dword [edx + 8]
mov ecx, dword [edx]
cdq
push edx
push eax
lea eax, [esp + 0x44]
push eax
mov eax, dword [ecx]
push ecx
call eax
add esp, 0x14
cmp eax, 1
je 0x469e7b
or al, 0xff
jmp 0x469e7f
mov al, byte [esp + 0x38]
mov cl, byte [esp + 0x44]
mov edx, dword [esp + 0x14]
movsx eax, al
sar eax, cl
and eax, 0xf
mov ecx, eax
mov dword [esp + 0x44], eax
and ecx, 7
imul ecx, dword [edx*4 + 0x52ecc0]
mov eax, ecx
sar ecx, 2
sar eax, 3
add ecx, eax
mov eax, dword [esp + 0x44]
test al, 8
je 0x469eb4
neg ecx
add ebx, ecx
cmp ebx, 0x7fff
jle 0x469ec5
mov ebx, 0x7fff
jmp 0x469ed2
cmp ebx, 0xffff8000
jge 0x469ed2
mov ebx, 0xffff8000
mov eax, dword [eax*4 + 0x52ec60]
xor ecx, ecx
add eax, edx
sets cl
dec ecx
and ecx, eax
mov dword [esp + 0x14], ecx
cmp ecx, 0x58
jle 0x469ef5
mov ecx, 0x58
mov dword [esp + 0x14], ecx
mov word [esi], bx
inc edi
add esi, dword [esp + 0x20]
cmp edi, dword [esp + 0x28]
jl 0x469e40
mov edi, dword [esp + 0x30]
mov esi, dword [esp + 0x1c]
mov eax, dword [ebp + 8]
jmp 0x469f18
mov ebx, dword [esp + 0xc]
mov edx, dword [esp + 0x24]
add esi, 2
add dword [esp + 0x4c], 0x30c
mov dword [esp + 0x1c], esi
mov dword [edx + 0x2c4], ecx
mov ecx, dword [esp + 0x10]
inc ecx
mov dword [edx + 0x2b4], ebx
mov ebx, dword [edi + 8]
mov dword [esp + 0x10], ecx
cmp ecx, ebx
jl 0x469df0
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0x1b0]
xor ecx, esp
call fcn.00502eb4
mov esp, ebp
pop ebp
ret
mov dword [esp + 0x20], 0
test ebx, ebx
jle case.default.0x466ca6
mov eax, dword [ebp + 8]
xor edx, edx
mov dword [esp + 0x28], edx
lea esp, [esp]
mov ecx, dword [edi + 0x154]
mov dword [esp + 0xc], ecx
mov ecx, dword [edi + 0x190]
mov edi, dword [esp + 0xc]
add ecx, edx
mov dword [esp + 0x10], ecx
mov edx, dword [ecx + 0x2b4]
lea esi, [edi + eax]
mov ecx, dword [ecx + 0x2c4]
cmp edi, esi
mov edi, dword [esp + 0x30]
mov dword [esp + 0x34], esi
mov esi, dword [esp + 0x1c]
mov dword [esp + 0x18], edx
mov dword [esp + 0x14], ecx
jge 0x46a0a0
lea eax, [ebx + ebx]
mov edi, edx
mov ebx, dword [esp + 0xc]
mov dword [esp + 0x3c], eax
mov eax, ebx
lea ecx, [ebx*4]
cdq
not ecx
sub eax, edx
and ecx, 4
mov edx, dword [esp + 0x10]
sar eax, 1
mov dword [esp + 0x44], ecx
push 1
add eax, dword [edx + 8]
mov ecx, dword [edx]
cdq
push edx
push eax
lea eax, [esp + 0x44]
push eax
mov eax, dword [ecx]
push ecx
call eax
add esp, 0x14
cmp eax, 1
je 0x46a00d
or al, 0xff
jmp 0x46a011
mov al, byte [esp + 0x38]
mov cl, byte [esp + 0x44]
movsx edx, al
sar edx, cl
mov ecx, dword [esp + 0x14]
and edx, 0xf
mov eax, edx
and eax, 7
imul eax, dword [ecx*4 + 0x52ecc0]
sar eax, 2
test dl, 8
je 0x46a038
neg eax
add edi, eax
cmp edi, 0x7fff
jle 0x46a049
mov edi, 0x7fff
jmp 0x46a056
cmp edi, 0xffff8000
jge 0x46a056
mov edi, 0xffff8000
mov eax, dword [edx*4 + 0x52ec60]
add eax, ecx
xor ecx, ecx
test eax, eax
sets cl
dec ecx
and ecx, eax
mov dword [esp + 0x14], ecx
cmp ecx, 0x58
jle 0x46a07b
mov ecx, 0x58
mov dword [esp + 0x14], ecx
mov word [esi], di
inc ebx
add esi, dword [esp + 0x3c]
cmp ebx, dword [esp + 0x34]
jl 0x469fd2
mov esi, dword [esp + 0x1c]
mov eax, dword [ebp + 8]
mov dword [esp + 0x18], edi
mov edi, dword [esp + 0x30]
mov edx, dword [esp + 0x18]
mov ebx, dword [esp + 0x10]
add esi, 2
mov dword [esp + 0x1c], esi
mov dword [ebx + 0x2c4], ecx
mov ecx, dword [esp + 0x20]
mov dword [ebx + 0x2b4], edx
inc ecx
mov edx, dword [esp + 0x28]
mov ebx, dword [edi + 8]
add edx, 0x30c
mov dword [esp + 0x20], ecx
mov dword [esp + 0x28], edx
cmp ecx, ebx
jl 0x469f80
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0x1b0]
xor ecx, esp
call fcn.00502eb4
mov esp, ebp
pop ebp
ret
mov dword [esp + 0x10], 0
test ebx, ebx
jle case.default.0x466ca6
mov eax, dword [ebp + 8]
xor edx, edx
mov dword [esp + 0x20], edx
jmp 0x46a110
mov ecx, dword [edi + 0x154]
mov dword [esp + 0x40], ecx
mov ecx, dword [edi + 0x190]
mov edi, dword [esp + 0x40]
add ecx, edx
mov dword [esp + 0xc], ecx
mov edx, dword [ecx + 0x2b4]
lea esi, [edi + eax]
mov ecx, dword [ecx + 0x2c4]
cmp edi, esi
mov edi, dword [esp + 0x30]
mov dword [esp + 0x28], esi
mov esi, dword [esp + 0x1c]
mov dword [esp + 0x18], edx
mov dword [esp + 0x2c], ecx
jge 0x46a26a
lea eax, [ebx + ebx]
mov edi, edx
mov ebx, dword [esp + 0x40]
mov dword [esp + 0x3c], eax
mov eax, ebx
lea ecx, [ebx*4]
cdq
not ecx
sub eax, edx
and ecx, 4
mov edx, dword [esp + 0xc]
sar eax, 1
mov dword [esp + 0x44], ecx
push 1
add eax, dword [edx + 8]
mov ecx, dword [edx]
cdq
push edx
push eax
lea eax, [esp + 0x44]
push eax
mov eax, dword [ecx]
push ecx
call eax
add esp, 0x14
cmp eax, 1
je 0x46a19d
or al, 0xff
jmp 0x46a1a1
mov al, byte [esp + 0x38]
mov cl, byte [esp + 0x44]
movsx ebx, al
mov eax, dword [esp + 0x2c]
sar ebx, cl
and ebx, 0xf
mov edx, dword [eax*4 + 0x52ecc0]
shl edx, 8
mov ecx, edx
sar ecx, 3
test bl, 1
je 0x46a1cc
mov eax, edx
sar eax, 2
add ecx, eax
test bl, 2
je 0x46a1d7
mov eax, edx
sar eax, 1
add ecx, eax
test bl, 4
je 0x46a1de
add ecx, edx
test bl, 8
je 0x46a1e5
neg ecx
add edi, ecx
cmp edi, 0x7fff00
jle 0x46a1f6
mov edi, 0x7fff00
jmp 0x46a203
cmp edi, 0xff800000
jge 0x46a203
mov edi, 0xff800000
lea eax, [edi + 0x80]
xor ecx, ecx
cdq
and edx, 0xff
add eax, edx
sar eax, 8
movzx edx, ax
mov eax, dword [ebx*4 + 0x52ec60]
add eax, dword [esp + 0x2c]
sets cl
dec ecx
and ecx, eax
mov dword [esp + 0x2c], ecx
cmp ecx, 0x58
jle 0x46a23d
mov ecx, 0x58
mov dword [esp + 0x2c], ecx
mov ebx, dword [esp + 0x40]
inc ebx
mov word [esi], dx
add esi, dword [esp + 0x3c]
mov dword [esp + 0x40], ebx
cmp ebx, dword [esp + 0x28]
jl 0x46a162
mov esi, dword [esp + 0x1c]
mov eax, dword [ebp + 8]
mov dword [esp + 0x18], edi
mov edi, dword [esp + 0x30]
mov edx, dword [esp + 0x18]
mov ebx, dword [esp + 0xc]
add esi, 2
mov dword [esp + 0x1c], esi
mov dword [ebx + 0x2c4], ecx
mov ecx, dword [esp + 0x10]
mov dword [ebx + 0x2b4], edx
inc ecx
mov edx, dword [esp + 0x20]
mov ebx, dword [edi + 8]
add edx, 0x30c
mov dword [esp + 0x10], ecx
mov dword [esp + 0x20], edx
cmp ecx, ebx
jl 0x46a110
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0x1b0]
xor ecx, esp
call fcn.00502eb4
mov esp, ebp
pop ebp
ret
mov dword [esp + 0x10], 0
test ebx, ebx
jle case.default.0x466ca6
mov eax, dword [ebp + 8]
xor edx, edx
mov dword [esp + 0x20], edx
jmp 0x46a2e0
mov ecx, dword [edi + 0x154]
mov dword [esp + 0x18], ecx
mov ecx, dword [edi + 0x190]
mov edi, dword [esp + 0x18]
add ecx, edx
mov dword [esp + 0xc], ecx
mov edx, dword [ecx + 0x2b4]
lea esi, [edi + eax]
mov ecx, dword [ecx + 0x2c4]
cmp edi, esi
mov edi, dword [esp + 0x30]
mov dword [esp + 0x28], esi
mov esi, dword [esp + 0x1c]
mov dword [esp + 0x24], edx
mov dword [esp + 0x14], ecx
jge 0x46a421
lea eax, [ebx + ebx]
mov edi, edx
mov ebx, dword [esp + 0x18]
mov dword [esp + 0x3c], eax
mov eax, ebx
mov ecx, ebx
cdq
and ecx, 1
sub eax, edx
shl ecx, 2
mov edx, dword [esp + 0xc]
sar eax, 1
mov dword [esp + 0x44], ecx
push 1
add eax, dword [edx + 8]
mov ecx, dword [edx]
cdq
push edx
push eax
lea eax, [esp + 0x44]
push eax
mov eax, dword [ecx]
push ecx
call eax
add esp, 0x14
cmp eax, 1
je 0x46a369
or al, 0xff
jmp 0x46a36d
mov al, byte [esp + 0x38]
mov edx, dword [esp + 0x14]
mov cl, byte [esp + 0x44]
movsx ebx, al
sar ebx, cl
mov eax, dword [edx*4 + 0x52ecc0]
and ebx, 0xf
cmp eax, 0x5771
jne 0x46a392
mov eax, 0x5756
jmp 0x46a39e
cmp eax, 0x602f
jne 0x46a39e
mov eax, 0x6039
mov ecx, ebx
and ecx, 7
test bl, 8
je 0x46a3aa
neg ecx
imul ecx, eax
sar eax, 1
add edi, eax
mov eax, dword [ebx*4 + 0x52ec60]
add edi, ecx
xor ecx, ecx
add eax, edx
sets cl
dec ecx
and ecx, eax
mov dword [esp + 0x14], ecx
cmp ecx, 0x58
jle 0x46a3d6
mov ecx, 0x58
mov dword [esp + 0x14], ecx
cmp edi, 0x7fff
jle 0x46a3e5
mov eax, 0x7fff
jmp 0x46a3f4
mov eax, 0xffff8000
cmp edi, 0xffff8000
jl 0x46a3f4
mov eax, edi
mov ebx, dword [esp + 0x18]
inc ebx
mov word [esi], ax
add esi, dword [esp + 0x3c]
mov dword [esp + 0x18], ebx
cmp ebx, dword [esp + 0x28]
jl 0x46a332
mov esi, dword [esp + 0x1c]
mov eax, dword [ebp + 8]
mov dword [esp + 0x24], edi
mov edi, dword [esp + 0x30]
mov edx, dword [esp + 0x24]
mov ebx, dword [esp + 0xc]
add esi, 2
mov dword [esp + 0x1c], esi
mov dword [ebx + 0x2c4], ecx
mov ecx, dword [esp + 0x10]
mov dword [ebx + 0x2b4], edx
inc ecx
mov edx, dword [esp + 0x20]
mov ebx, dword [edi + 8]
add edx, 0x30c
mov dword [esp + 0x10], ecx
mov dword [esp + 0x20], edx
cmp ecx, ebx
jl 0x46a2e0
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0x1b0]
xor ecx, esp
call fcn.00502eb4
mov esp, ebp
pop ebp
ret
mov dword [esp + 0xc], 0
test ebx, ebx
jle case.default.0x466ca6
xor edx, edx
mov dword [esp + 0x10], edx
jmp 0x46a490
push dword [ebp + 8]
mov ecx, dword [edi + 0x190]
push dword [edi + 0x154]
add ecx, edx
mov edx, esi
push ebx
call fcn.004df0a0
mov eax, dword [esp + 0x18]
add esp, 0xc
mov edx, dword [esp + 0x10]
inc eax
mov ebx, dword [edi + 8]
add edx, 0x30c
add esi, 2
mov dword [esp + 0xc], eax
mov dword [esp + 0x10], edx
cmp eax, ebx
jl 0x46a490
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0x1b0]
xor ecx, esp
call fcn.00502eb4
mov esp, ebp
pop ebp
ret
mov dword [esp + 0x14], 0
test ebx, ebx
jle case.default.0x466ca6
mov eax, dword [ebp + 8]
xor edx, edx
mov dword [esp + 0x28], edx
jmp 0x46a500
mov ecx, dword [edi + 0x154]
mov dword [esp + 0xc], ecx
mov ecx, dword [edi + 0x190]
mov esi, dword [esp + 0xc]
add ecx, edx
mov dword [esp + 0x20], ecx
mov edx, dword [ecx + 0x2b4]
lea edi, [esi + eax]
mov ecx, dword [ecx + 0x2c4]
cmp esi, edi
mov esi, dword [esp + 0x1c]
mov dword [esp + 0x34], edi
mov edi, dword [esp + 0x30]
mov dword [esp + 0x18], edx
mov dword [esp + 0x2c], ecx
jge 0x46a63f
mov eax, dword [esp + 0x14]
mov edi, edx
neg eax
mov dword [esp + 0x10], esi
mov esi, dword [esp + 0xc]
sbb eax, eax
and eax, 4
mov dword [esp + 0x44], eax
lea eax, [ebx + ebx]
mov dword [esp + 0x3c], eax
mov ecx, dword [esp + 0x20]
push 1
mov eax, dword [ecx + 8]
mov ecx, dword [ecx]
add eax, esi
cdq
push edx
push eax
lea eax, [esp + 0x44]
push eax
mov eax, dword [ecx]
push ecx
call eax
add esp, 0x14
cmp eax, 1
je 0x46a58b
or al, 0xff
jmp 0x46a58f
mov al, byte [esp + 0x38]
mov cl, byte [esp + 0x44]
movsx ebx, al
sar ebx, cl
xor ecx, ecx
and ebx, 0xf
mov eax, dword [ebx*4 + 0x52ec60]
add eax, dword [esp + 0x2c]
sets cl
dec ecx
and ecx, eax
mov dword [esp + 0x2c], ecx
cmp ecx, 0x58
jle 0x46a5c0
mov ecx, 0x58
mov dword [esp + 0x2c], ecx
mov edx, dword [ecx*4 + 0x52ecc0]
mov eax, ebx
and eax, 7
imul eax, edx
mov ecx, eax
test ecx, ecx
jns 0x46a5d8
add ecx, 3
sar ecx, 2
mov eax, edx
test eax, eax
jns 0x46a5e4
add eax, 7
sar eax, 3
add eax, ecx
test bl, 8
je 0x46a5f0
neg eax
add edi, eax
cmp edi, 0x7fff
jle 0x46a601
mov edi, 0x7fff
jmp 0x46a60e
cmp edi, 0xffff8000
jge 0x46a60e
mov edi, 0xffff8000
mov ebx, dword [esp + 0x10]
inc esi
mov word [ebx], di
add ebx, dword [esp + 0x3c]
mov dword [esp + 0x10], ebx
cmp esi, dword [esp + 0x34]
jl 0x46a565
mov esi, dword [esp + 0x1c]
mov eax, dword [ebp + 8]
mov ecx, dword [esp + 0x2c]
mov dword [esp + 0x18], edi
mov edi, dword [esp + 0x30]
mov edx, dword [esp + 0x18]
mov ebx, dword [esp + 0x20]
add esi, 2
mov dword [esp + 0x1c], esi
mov dword [ebx + 0x2c4], ecx
mov ecx, dword [esp + 0x14]
mov dword [ebx + 0x2b4], edx
inc ecx
mov edx, dword [esp + 0x28]
mov ebx, dword [edi + 8]
add edx, 0x30c
mov dword [esp + 0x14], ecx
mov dword [esp + 0x28], edx
cmp ecx, ebx
jl 0x46a500
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0x1b0]
xor ecx, esp
call fcn.00502eb4
mov esp, ebp
pop ebp
ret
xor eax, eax
mov dword [esp + 0xc], eax
test ebx, ebx
jle case.default.0x466ca6
xor ecx, ecx
mov dword [esp + 0x10], ecx
mov edx, dword [edi + 0x190]
push eax
push dword [ebp + 8]
add edx, ecx
mov ecx, edi
push dword [edi + 0x154]
push ebx
push esi
call fcn.004de330
mov eax, dword [esp + 0x20]
add esp, 0x14
mov ecx, dword [esp + 0x10]
inc eax
mov ebx, dword [edi + 8]
add ecx, 0x30c
add esi, 2
mov dword [esp + 0xc], eax
mov dword [esp + 0x10], ecx
cmp eax, ebx
jl 0x46a6a1
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0x1b0]
xor ecx, esp
call fcn.00502eb4
mov esp, ebp
pop ebp
ret
xor eax, eax
mov dword [esp + 0xc], eax
test ebx, ebx
jle case.default.0x466ca6
xor ecx, ecx
mov dword [esp + 0x10], ecx
lea esp, [esp]
mov edx, dword [edi + 0x190]
push eax
push dword [ebp + 8]
add edx, ecx
mov ecx, edi
push dword [edi + 0x154]
push ebx
push esi
call fcn.004df2b0
mov eax, dword [esp + 0x20]
add esp, 0x14
mov ecx, dword [esp + 0x10]
inc eax
mov ebx, dword [edi + 8]
add ecx, 0x30c
add esi, 2
mov dword [esp + 0xc], eax
mov dword [esp + 0x10], ecx
cmp eax, ebx
jl 0x46a710
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0x1b0]
xor ecx, esp
call fcn.00502eb4
mov esp, ebp
pop ebp
ret
mov dword [esp + 0xc], 0
test ebx, ebx
jle case.default.0x466ca6
xor ecx, ecx
mov dword [esp + 0x10], ecx
lea ebx, [ebx]
push dword [ebp + 8]
mov edx, dword [edi + 0x190]
push dword [edi + 0x154]
add edx, ecx
mov ecx, edi
push ebx
push esi
call fcn.004df4b0
mov eax, dword [esp + 0x1c]
add esp, 0x10
mov ecx, dword [esp + 0x10]
inc eax
mov ebx, dword [edi + 8]
add ecx, 0x30c
add esi, 2
mov dword [esp + 0xc], eax
mov dword [esp + 0x10], ecx
cmp eax, ebx
jl 0x46a780
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0x1b0]
xor ecx, esp
call fcn.00502eb4
mov esp, ebp
pop ebp
ret
xor eax, eax
mov dword [esp + 0xc], eax
test ebx, ebx
jle case.default.0x466ca6
xor ecx, ecx
mov dword [esp + 0x10], ecx
jmp 0x46a7f0
mov edx, dword [edi + 0x190]
push eax
push dword [ebp + 8]
add edx, ecx
mov ecx, edi
push dword [edi + 0x154]
push ebx
push esi
call fcn.004de6a0
mov eax, dword [esp + 0x20]
add esp, 0x14
mov ecx, dword [esp + 0x10]
inc eax
mov ebx, dword [edi + 8]
add ecx, 0x30c
add esi, 2
mov dword [esp + 0xc], eax
mov dword [esp + 0x10], ecx
cmp eax, ebx
jl 0x46a7f0
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0x1b0]
xor ecx, esp
call fcn.00502eb4
mov esp, ebp
pop ebp
ret
mov dword [esp + 0xc], 0
test ebx, ebx
jle case.default.0x466ca6
xor edx, edx
mov dword [esp + 0x10], edx
lea ebx, [ebx]
push dword [ebp + 8]
mov ecx, dword [edi + 0x190]
push dword [edi + 0x154]
add ecx, edx
mov edx, esi
push ebx
call fcn.004df640
mov eax, dword [esp + 0x18]
add esp, 0xc
mov edx, dword [esp + 0x10]
inc eax
mov ebx, dword [edi + 8]
add edx, 0x30c
add esi, 2
mov dword [esp + 0xc], eax
mov dword [esp + 0x10], edx
cmp eax, ebx
jl 0x46a860
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0x1b0]
xor ecx, esp
call fcn.00502eb4
mov esp, ebp
pop ebp
ret
xor eax, eax
mov dword [esp + 0xc], eax
test ebx, ebx
jle case.default.0x466ca6
xor edx, edx
mov dword [esp + 0x10], edx
mov ecx, dword [edi + 0x190]
push eax
push dword [ebp + 8]
add ecx, edx
mov edx, esi
push dword [edi + 0x154]
push ebx
call fcn.004df7d0
mov eax, dword [esp + 0x1c]
add esp, 0x10
mov edx, dword [esp + 0x10]
inc eax
mov ebx, dword [edi + 8]
add edx, 0x30c
add esi, 2
mov dword [esp + 0xc], eax
mov dword [esp + 0x10], edx
cmp eax, ebx
jl 0x46a8c6
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0x1b0]
xor ecx, esp
call fcn.00502eb4
mov esp, ebp
pop ebp
ret
mov dword [esp + 0x24], 0
test ebx, ebx
jle case.default.0x466ca6
xor edx, edx
mov dword [esp + 0x28], edx
nop
mov eax, dword [edi + 0x190]
mov ecx, dword [edi + 0x154]
add eax, edx
mov dword [esp + 0x14], eax
mov dword [esp + 0x10], ecx
mov edx, dword [eax + 0x2b4]
mov eax, dword [eax + 0x2c4]
mov dword [esp + 0x2c], edx
mov dword [esp + 0x18], eax
test eax, eax
jns 0x46a968
mov dword [esp + 0x18], 0
jmp 0x46a975
cmp eax, 0x59
jle 0x46a975
mov dword [esp + 0x18], 0x59
mov eax, dword [ebp + 8]
add eax, ecx
mov dword [esp + 0x20], eax
cmp ecx, eax
jge 0x46aa7e
mov edi, dword [esp + 0x10]
cmp ebx, 1
jne 0x46a9fc
mov dword [esp + 0xc], esi
mov esi, dword [esp + 0x14]
mov ecx, dword [esi]
mov eax, edi
cdq
mov ebx, edi
sub eax, edx
not ebx
sar eax, 1
and ebx, 1
add eax, dword [esi + 8]
cdq
push 1
push edx
push eax
lea eax, [esp + 0x4c]
shl ebx, 2
push eax
mov eax, dword [ecx]
push ecx
call eax
add esp, 0x14
cmp eax, 1
je 0x46a9c9
or cl, 0xff
jmp 0x46a9cd
mov cl, byte [esp + 0x40]
lea eax, [esp + 0x18]
mov edx, ebx
push eax
lea eax, [esp + 0x30]
push eax
call fcn.004dde60
mov eax, dword [esp + 0x14]
inc edi
mov edx, dword [esp + 0x34]
add esp, 8
mov word [eax], dx
add eax, 2
mov dword [esp + 0xc], eax
cmp edi, dword [esp + 0x20]
jl 0x46a997
jmp 0x46aa76
mov eax, dword [esp + 0x24]
neg eax
mov dword [esp + 0xc], esi
mov esi, dword [esp + 0x14]
sbb eax, eax
and eax, 0xfffffffc
add eax, 4
mov dword [esp + 0x44], eax
lea eax, [ebx + ebx]
mov ebx, dword [esp + 0x44]
mov dword [esp + 0x3c], eax
mov eax, dword [esi + 8]
mov ecx, dword [esi]
add eax, edi
cdq
push 1
push edx
push eax
lea eax, [esp + 0x4c]
push eax
mov eax, dword [ecx]
push ecx
call eax
add esp, 0x14
cmp eax, 1
je 0x46aa44
or cl, 0xff
jmp 0x46aa48
mov cl, byte [esp + 0x40]
lea eax, [esp + 0x18]
mov edx, ebx
push eax
lea eax, [esp + 0x30]
push eax
call fcn.004dde60
mov eax, dword [esp + 0x14]
inc edi
mov edx, dword [esp + 0x34]
add esp, 8
mov word [eax], dx
add eax, dword [esp + 0x3c]
mov dword [esp + 0xc], eax
cmp edi, dword [esp + 0x20]
jl 0x46aa21
mov esi, dword [esp + 0x1c]
mov edi, dword [esp + 0x30]
mov ecx, dword [esp + 0x14]
add esi, 2
mov eax, dword [esp + 0x18]
mov dword [esp + 0x1c], esi
mov dword [ecx + 0x2c4], eax
mov eax, dword [esp + 0x24]
mov dword [ecx + 0x2b4], edx
inc eax
mov edx, dword [esp + 0x28]
mov ebx, dword [edi + 8]
add edx, 0x30c
mov dword [esp + 0x24], eax
mov dword [esp + 0x28], edx
cmp eax, ebx
jl 0x46a930
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0x1b0]
xor ecx, esp
call fcn.00502eb4
mov esp, ebp
pop ebp
ret
xor ecx, ecx
mov dword [esp + 0xc], ecx
test ebx, ebx
jle case.default.0x466ca6
xor edx, edx
mov dword [esp + 0x10], edx
mov eax, dword [edi + 0x188]
sar eax, 8
push eax
push ecx
push dword [ebp + 8]
mov ecx, dword [edi + 0x190]
push dword [edi + 0x154]
add ecx, edx
mov edx, esi
push ebx
call fcn.004dfa90
mov ecx, dword [esp + 0x20]
add esp, 0x14
mov edx, dword [esp + 0x10]
inc ecx
mov ebx, dword [edi + 8]
add edx, 0x30c
add esi, 2
mov dword [esp + 0xc], ecx
mov dword [esp + 0x10], edx
cmp ecx, ebx
jl 0x46aae4
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0x1b0]
xor ecx, esp
call fcn.00502eb4
mov esp, ebp
pop ebp
ret
mov dword [esp + 0x20], 0
test ebx, ebx
jle case.default.0x466ca6
xor edx, edx
mov dword [esp + 0x28], edx
lea esi, [edx + 0x40]
lea ebx, [ebx]
mov ecx, dword [edi + 0x190]
xor eax, eax
add ecx, edx
mov dword [esp + 0x54], eax
mov dword [esp + 0x58], eax
mov dword [esp + 0x5c], eax
mov dword [esp + 0x60], eax
mov dword [esp + 0x64], eax
mov dword [esp + 0x68], eax
mov dword [esp + 0x6c], eax
mov dword [esp + 0x70], eax
mov dword [esp + 0x74], eax
mov dword [esp + 0xc], eax
mov eax, dword [ecx + 0x2b4]
mov dword [esp + 0x44], eax
mov eax, dword [ecx + 0x2c4]
mov dword [esp + 0x2c], eax
mov eax, dword [edi + 0x154]
cdq
idiv esi
mov esi, dword [ecx]
mov dword [esp + 0x10], ecx
push 0x24
mov dword [esp + 0x18], edx
lea ecx, [eax + eax*8]
mov eax, dword [esp + 0x14]
mov eax, dword [eax + 8]
lea eax, [eax + ecx*4]
cdq
push edx
push eax
lea eax, [esp + 0x60]
push eax
mov eax, dword [esi]
push esi
call eax
mov ecx, dword [esp + 0x28]
add esp, 0x14
test ecx, ecx
jne 0x46ac23
mov ecx, dword [esp + 0x54]
movzx eax, ch
shl ax, 8
movsx esi, ax
movzx eax, cl
movzx ecx, byte [esp + 0x56]
or esi, eax
mov dword [esp + 0x2c], ecx
cmp ecx, 0x58
jbe 0x46ac09
mov dword [esp + 0x2c], 0x58
mov edx, dword [esp + 0x1c]
mov ecx, 1
mov eax, dword [ebp + 8]
mov dword [esp + 0xc], ebx
dec eax
mov dword [esp + 0x14], ecx
mov word [edx], si
jmp 0x46ac2e
mov edx, dword [esp + 0x1c]
mov esi, dword [esp + 0x44]
mov eax, dword [ebp + 8]
add eax, ecx
mov dword [esp + 0x34], eax
cmp ecx, eax
jge 0x46ace9
mov edi, dword [esp + 0x14]
lea eax, [ebx + ebx]
mov ebx, dword [esp + 0x2c]
mov dword [esp + 0x3c], eax
mov eax, dword [esp + 0xc]
lea eax, [edx + eax*2]
mov dword [esp + 0x44], eax
mov edx, eax
mov ecx, edi
and ecx, 1
shl ecx, 2
mov eax, edi
test eax, eax
jns 0x46ac69
add eax, 1
sar eax, 1
movzx eax, byte [esp + eax + 0x58]
shr eax, cl
and eax, 0xf
mov dword [esp + 0x44], eax
movsx ecx, word [eax*2 + 0x52eca0]
movsx eax, word [ebx*2 + 0x52eba8]
imul ecx, eax
sar ecx, 0x10
movsx eax, cx
add esi, eax
cmp esi, 0x7fff
jle 0x46aca3
mov esi, 0x7fff
jmp 0x46acb0
cmp esi, 0xffff8000
jge 0x46acb0
mov esi, 0xffff8000
mov eax, dword [esp + 0x44]
add ebx, dword [eax*4 + 0x52ec60]
jns 0x46acc1
xor ebx, ebx
jmp 0x46accb
cmp ebx, 0x58
jle 0x46accb
mov ebx, 0x58
mov word [edx], si
inc edi
add edx, dword [esp + 0x3c]
cmp edi, dword [esp + 0x34]
jl 0x46ac58
mov edi, dword [esp + 0x30]
mov edx, dword [esp + 0x1c]
mov dword [esp + 0x2c], ebx
mov ecx, dword [esp + 0x10]
add edx, 2
mov eax, dword [esp + 0x2c]
mov dword [esp + 0x1c], edx
mov edx, dword [esp + 0x28]
mov dword [ecx + 0x2c4], eax
add edx, 0x30c
mov eax, dword [esp + 0x20]
mov dword [ecx + 0x2b4], esi
inc eax
mov ebx, dword [edi + 8]
mov esi, 0x40
mov dword [esp + 0x20], eax
mov dword [esp + 0x28], edx
cmp eax, ebx
jl 0x46ab60
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0x1b0]
xor ecx, esp
call fcn.00502eb4
mov esp, ebp
pop ebp
ret
mov dword [esp + 0x20], 0
test ebx, ebx
jle case.default.0x466ca6
xor edx, edx
mov dword [esp + 0x44], 0x40
mov dword [esp + 0x28], edx
mov edi, edi
mov ecx, dword [edi + 0x190]
xor eax, eax
add ecx, edx
mov dword [esp + 0x54], eax
mov dword [esp + 0x58], eax
mov dword [esp + 0x5c], eax
mov dword [esp + 0x60], eax
mov dword [esp + 0x64], eax
mov dword [esp + 0x68], eax
mov dword [esp + 0x6c], eax
mov dword [esp + 0x70], eax
mov word [esp + 0x74], ax
mov byte [esp + 0x76], al
mov eax, dword [ecx + 0x2b4]
mov dword [esp + 0x4c], eax
mov dword [esp + 0x14], eax
mov eax, dword [ecx + 0x2c4]
mov dword [esp + 0x3c], eax
mov dword [esp + 0x24], eax
mov eax, dword [edi + 0x154]
cdq
idiv dword [esp + 0x44]
mov dword [esp + 0x10], ecx
mov ecx, dword [ecx]
imul eax, eax, 0x23
mov dword [esp + 0xc], edx
mov edx, dword [esp + 0x10]
push 0x23
push 0
add eax, dword [edx + 8]
push eax
lea eax, [esp + 0x60]
push eax
mov eax, dword [ecx]
push ecx
call eax
mov ecx, dword [esp + 0x20]
add esp, 0x14
test ecx, ecx
jne 0x46ae18
movzx eax, byte [esp + 0x54]
shl ax, 8
movsx edx, ax
movzx eax, byte [esp + 0x55]
or edx, eax
mov dword [esp + 0x4c], edx
mov dword [esp + 0x14], edx
movzx edx, byte [esp + 0x56]
cmp edx, 0x58
jbe 0x46ae12
mov edx, 0x58
mov dword [esp + 0x24], edx
jmp 0x46ae1c
mov edx, dword [esp + 0x3c]
mov eax, dword [ebp + 8]
add eax, ecx
mov dword [esp + 0x34], eax
cmp ecx, eax
jge 0x46ae81
mov edi, dword [esp + 0xc]
lea eax, [ebx + ebx]
mov dword [esp + 0x3c], eax
mov ebx, esi
lea eax, [esp + 0x24]
mov edx, edi
push eax
lea eax, [esp + 0x18]
and edx, 1
push eax
shl edx, 2
mov ecx, edi
test ecx, ecx
jns 0x46ae51
add ecx, 1
sar ecx, 1
mov cl, byte [esp + ecx + 0x5f]
call fcn.004dde60
mov esi, dword [esp + 0x1c]
inc edi
mov word [ebx], si
add esp, 8
add ebx, dword [esp + 0x3c]
mov dword [esp + 0x4c], esi
cmp edi, dword [esp + 0x34]
jl 0x46ae36
mov edx, dword [esp + 0x24]
mov edi, dword [esp + 0x30]
mov esi, dword [esp + 0x1c]
mov ecx, dword [esp + 0x10]
add esi, 2
mov eax, dword [esp + 0x4c]
mov dword [esp + 0x1c], esi
mov dword [ecx + 0x2b4], eax
mov eax, dword [esp + 0x20]
mov dword [ecx + 0x2c4], edx
inc eax
mov edx, dword [esp + 0x28]
mov ebx, dword [edi + 8]
add edx, 0x30c
mov dword [esp + 0x20], eax
mov dword [esp + 0x28], edx
cmp eax, ebx
jl 0x46ad60
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0x1b0]
xor ecx, esp
call fcn.00502eb4
mov esp, ebp
pop ebp
ret
xor eax, eax
mov dword [esp + 0xc], eax
test ebx, ebx
jle case.default.0x466ca6
push dword [ebp + 8]
mov edx, eax
mov ecx, edi
push dword [edi + 0x154]
push ebx
push esi
call fcn.004edb50
mov eax, dword [esp + 0x1c]
add esp, 0x10
mov ebx, dword [edi + 8]
inc eax
add esi, 2
mov dword [esp + 0xc], eax
cmp eax, ebx
jl 0x46aee1
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0x1b0]
xor ecx, esp
call fcn.00502eb4
mov esp, ebp
pop ebp
ret
mov eax, dword [edi + 0x1a4]
mov dword [esp + 0x30], eax
cmp dword [eax + 0x54], 0
jne 0x46b072
mov ecx, dword [edi + 0x190]
xor edx, edx
mov edi, dword [ebp + 8]
mov dword [esp + 0xc], ecx
mov dword [esp + 0x38], edx
mov dword [esp + 0x2c], esi
test edi, edi
jle case.default.0x466ca6
lea ecx, [eax + 8]
mov dword [esp + 0x18], ecx
lea ecx, [eax + 0x10]
lea ecx, [ecx]
cmp dword [eax + 0xc], 0
mov dword [esp + 0x44], ecx
mov dword [esp + 0x14], ecx
jne 0x46afbb
push dword [eax + 4]
mov edx, dword [esp + 0x10]
mov ecx, dword [edx]
mov eax, dword [edx + 8]
cdq
push edx
push eax
mov eax, dword [esp + 0x3c]
push dword [eax]
mov eax, dword [ecx]
push ecx
call eax
mov edx, eax
add esp, 0x14
mov eax, dword [esp + 0x18]
mov dword [eax], edx
test edx, edx
je 0x46b069
mov ecx, dword [esp + 0x14]
mov eax, dword [esp + 0x30]
mov dword [ecx], 0
mov ecx, dword [esp + 0xc]
mov dword [eax + 0xc], 1
add dword [ecx + 8], edx
mov edx, dword [esp + 0x38]
mov ecx, edi
sub ecx, edx
mov edx, dword [eax + 0x14]
imul ecx, ebx
mov dword [esp + 0x10], edx
mov edx, dword [esp + 0x14]
add ecx, ecx
cmp dword [edx], 0
jne 0x46b006
lea edx, [esp + 0x20]
push edx
push ecx
mov ecx, dword [esp + 0x20]
push dword [esp + 0x34]
push dword [ecx]
push dword [eax]
push dword [esp + 0x24]
call dword [sym.imp.libmpg123_0.dll_mpg123_decode]
mov ecx, dword [esp + 0x30]
mov edx, eax
mov eax, dword [esp + 0x5c]
mov dword [eax], 1
mov eax, dword [esp + 0x48]
jmp 0x46b027
lea eax, [esp + 0x20]
push eax
push ecx
push dword [esp + 0x34]
push 0
push 0
push dword [esp + 0x24]
call dword [sym.imp.libmpg123_0.dll_mpg123_decode]
mov edx, eax
mov eax, dword [esp + 0x48]
lea ecx, [eax + 8]
add esp, 0x18
mov dword [esp + 0x18], ecx
cmp edx, 0xfffffff6
jne 0x46b03a
mov dword [eax + 0xc], 0
mov ecx, dword [esp + 0x20]
xor edx, edx
mov eax, ecx
add dword [esp + 0x2c], ecx
shr eax, 1
div ebx
mov edx, dword [esp + 0x38]
add edx, eax
mov dword [esp + 0x38], edx
cmp edx, edi
jge case.default.0x466ca6
mov eax, dword [esp + 0x30]
mov ecx, dword [esp + 0x14]
jmp 0x46af60
mov eax, dword [esp + 0x38]
jmp 0x46b454
push ebx
push dword [ebp + 8]
mov edx, eax
push esi
call fcn.004e42a0
add esp, 0xc
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0x1b0]
xor ecx, esp
call fcn.00502eb4
mov esp, ebp
pop ebp
ret
mov dword [esp + 0xc], 0
test ebx, ebx
jle case.default.0x466ca6
mov ecx, dword [ebp + 8]
xor eax, eax
mov dword [esp + 0x24], 0
mov dword [esp + 0x4c], eax
jmp 0x46b0c0
mov edx, dword [edi + 0x190]
add edx, eax
mov eax, dword [edi + 0x1a4]
mov eax, dword [eax + 8]
add eax, dword [esp + 0x24]
cmp dword [edi + 0x154], 0
mov dword [esp + 0x14], eax
jne 0x46b13b
mov esi, dword [edi + 0x1a4]
mov ecx, dword [edx]
mov eax, dword [edx + 8]
cdq
mov esi, dword [esi + 4]
push esi
push edx
push eax
lea eax, [esp + 0x84]
push eax
mov eax, dword [ecx]
push ecx
call eax
add esp, 0x14
cmp eax, esi
je 0x46b11d
push 0x500
push 0
push dword [esp + 0x1c]
call fcn.00504370
add esp, 0xc
jmp 0x46b134
mov eax, dword [esp + 0x14]
lea edx, [esp + 0x78]
push eax
mov ecx, dword [eax + 0x500]
call fcn.004f7b10
add esp, 4
mov ecx, dword [ebp + 8]
mov esi, dword [esp + 0x1c]
xor edx, edx
test ecx, ecx
jle 0x46b16c
lea eax, [ebx + ebx]
mov ebx, esi
mov esi, dword [esp + 0x14]
mov dword [esp + 0x44], eax
mov edi, edi
mov eax, dword [edi + 0x154]
add eax, edx
inc edx
mov ax, word [esi + eax*2]
mov word [ebx], ax
add ebx, dword [esp + 0x44]
cmp edx, ecx
jl 0x46b150
mov esi, dword [esp + 0x1c]
mov eax, dword [esp + 0xc]
add esi, 2
add dword [esp + 0x4c], 0x30c
inc eax
add dword [esp + 0x24], 0x504
mov ebx, dword [edi + 8]
cmp eax, ebx
mov dword [esp + 0xc], eax
mov eax, dword [esp + 0x4c]
mov dword [esp + 0x1c], esi
jl 0x46b0c0
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0x1b0]
xor ecx, esp
call fcn.00502eb4
mov esp, ebp
pop ebp
ret
mov dword [esp + 0x10], 0
test ebx, ebx
jle case.default.0x466ca6
mov ecx, dword [ebp + 8]
xor eax, eax
mov dword [esp + 0x14], 0
mov dword [esp + 0x24], eax
mov edx, dword [edi + 0x190]
add edx, eax
mov eax, dword [edi + 0x1a4]
add eax, dword [esp + 0x14]
cmp dword [edi + 0x154], 0
mov dword [esp + 0xc], eax
jne 0x46b22a
push dword [edi + 0x24]
mov ecx, dword [edx]
mov eax, dword [edx + 8]
cdq
push edx
push eax
lea eax, [esp + 0x84]
push eax
mov eax, dword [ecx]
push ecx
call eax
mov eax, dword [esp + 0x20]
lea ecx, [esp + 0x8c]
add esp, 0x14
push eax
push ecx
push dword [eax + 0x780]
call dword [sym.imp.libg719_decode.dll_Ordinal_1]
mov ecx, dword [ebp + 8]
add esp, 0xc
xor edx, edx
test ecx, ecx
jle 0x46b25c
lea eax, [ebx + ebx]
mov ebx, esi
mov esi, dword [esp + 0xc]
mov dword [esp + 0x44], eax
lea ecx, [ecx]
mov eax, dword [edi + 0x154]
add eax, edx
inc edx
mov ax, word [esi + eax*2]
mov word [ebx], ax
add ebx, dword [esp + 0x44]
cmp edx, ecx
jl 0x46b240
mov esi, dword [esp + 0x1c]
mov eax, dword [esp + 0x10]
add esi, 2
add dword [esp + 0x24], 0x30c
inc eax
add dword [esp + 0x14], 0x784
mov ebx, dword [edi + 8]
cmp eax, ebx
mov dword [esp + 0x10], eax
mov eax, dword [esp + 0x24]
mov dword [esp + 0x1c], esi
jl 0x46b1d1
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0x1b0]
xor ecx, esp
call fcn.00502eb4
mov esp, ebp
pop ebp
ret
mov eax, dword [edi + 0x190]
mov edx, dword [edi + 0x1a4]
mov edi, dword [ebp + 8]
mov dword [esp + 0x10], eax
mov dword [esp + 0x38], edx
mov dword [esp + 0x30], 0
test edi, edi
jle case.default.0x466ca6
lea ecx, [edx + 0x10]
mov dword [esp + 0x3c], ecx
mov dword [esp + 0x40], ecx
mov eax, dword [edx + 0xc]
mov dword [esp + 0xc], eax
test eax, eax
je 0x46b37c
mov esi, dword [edx + 0x14]
test esi, esi
mov dword [esp + 0x14], esi
mov esi, dword [esp + 0x1c]
je 0x46b319
mov ebx, dword [esp + 0x2c]
cmp eax, dword [esp + 0x14]
jle 0x46b2fe
mov eax, dword [esp + 0x14]
mov ecx, dword [esp + 0x14]
add dword [edx + 0x10], eax
sub ecx, eax
sub dword [edx + 0xc], eax
mov dword [edx + 0x14], ecx
lea ecx, [edx + 0x10]
mov dword [esp + 0x40], ecx
jmp 0x46b431
mov esi, edi
sub esi, dword [esp + 0x30]
mov dword [esp + 0x44], esi
cmp eax, esi
mov esi, dword [esp + 0x1c]
jle 0x46b335
mov eax, dword [esp + 0x44]
mov dword [esp + 0xc], eax
jmp 0x46b339
mov ecx, dword [esp + 0x40]
mov ecx, dword [ecx]
imul eax, ebx
imul ecx, ebx
add eax, eax
push eax
mov eax, dword [edx + 8]
lea eax, [eax + ecx*2]
push eax
mov eax, dword [esp + 0x38]
imul eax, ebx
lea eax, [esi + eax*2]
push eax
call fcn.00504df0
mov ecx, dword [esp + 0x48]
add esp, 0xc
mov edx, dword [esp + 0x38]
mov eax, dword [esp + 0xc]
add dword [esp + 0x30], eax
add dword [ecx], eax
sub dword [edx + 0xc], eax
mov dword [esp + 0x40], ecx
jmp 0x46b431
mov eax, dword [edx]
mov edi, dword [esp + 0x38]
mov dword [esp + 0x18], eax
mov eax, dword [esp + 0x10]
mov dword [ecx], 0
push dword [edi + 0x34]
mov dword [esp + 0x10], 0
mov ecx, dword [eax]
mov eax, dword [eax + 8]
cdq
push edx
push eax
push dword [esp + 0x24]
mov eax, dword [ecx]
push ecx
call eax
mov edx, edi
mov ecx, eax
mov edi, dword [ebp + 8]
add esp, 0x14
cmp ecx, dword [edx + 4]
jne 0x46b450
mov eax, dword [esp + 0x10]
mov dword [esp + 0x20], 0
add dword [eax + 8], ecx
lea ecx, [edx + 0x10]
cmp dword [edx + 0x38], 0
mov dword [esp + 0x40], ecx
jle 0x46b431
jmp 0x46b3e0
mov ecx, dword [edx + 0xc]
lea eax, [esp + 0xc]
push eax
mov eax, dword [edx + 8]
imul ecx, ebx
lea eax, [eax + ecx*2]
push eax
push dword [esp + 0x20]
push dword [edx + 0x24]
call dword [sym.imp.libatrac9.dll_Atrac9Decode]
add esp, 0x10
test eax, eax
js 0x46b450
mov edx, dword [esp + 0x38]
mov eax, dword [esp + 0x18]
add eax, dword [esp + 0xc]
mov dword [esp + 0x18], eax
mov eax, dword [edx + 0x3c]
lea ecx, [edx + 0x10]
add dword [edx + 0xc], eax
mov eax, dword [esp + 0x20]
inc eax
mov dword [esp + 0x40], ecx
mov dword [esp + 0x20], eax
cmp eax, dword [edx + 0x38]
jl 0x46b3e0
cmp dword [esp + 0x30], edi
jl 0x46b2d2
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0x1b0]
xor ecx, esp
call fcn.00502eb4
mov esp, ebp
pop ebp
ret
mov eax, dword [esp + 0x30]
sub edi, eax
imul eax, ebx
imul edi, ebx
add edi, edi
push edi
lea eax, [esi + eax*2]
push 0
push eax
call fcn.00504370
add esp, 0xc
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0x1b0]
xor ecx, esp
call fcn.00502eb4
mov esp, ebp
pop ebp
ret
push ebx
push dword [ebp + 8]
mov edx, esi
call fcn.004e8ec0
add esp, 8
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0x1b0]
xor ecx, esp
call fcn.00502eb4
mov esp, ebp
pop ebp
ret
push dword [ebp + 8]
mov edx, esi
call fcn.004e8b00
add esp, 4
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0x1b0]
xor ecx, esp
call fcn.00502eb4
mov esp, ebp
pop ebp
ret
mov eax, dword [edi + 0x1a4]
xor ecx, ecx
mov edi, dword [ebp + 8]
mov dword [esp + 0xc], ecx
mov eax, dword [eax + 4]
mov dword [esp + 0x44], eax
test edi, edi
jle case.default.0x466ca6
mov eax, edi
sub esp, 0xc
sub eax, ecx
imul ecx, ebx
imul eax, ebx
add eax, eax
push eax
lea edx, [esi + ecx*2]
mov ecx, dword [esp + 0x54]
call fcn.004d8040
add esp, 0x10
test eax, eax
jle case.default.0x466ca6
shr eax, 1
xor edx, edx
div ebx
mov ecx, dword [esp + 0xc]
add ecx, eax
mov dword [esp + 0xc], ecx
cmp ecx, edi
jl 0x46b4e5
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0x1b0]
xor ecx, esp
call fcn.00502eb4
mov esp, ebp
pop ebp
ret
mov ecx, dword [edi + 0x1a4]
mov ebx, dword [ebp + 8]
mov dword [esp + 0x44], ecx
mov edi, dword [ecx + 4]
test ebx, ebx
jle case.default.0x466ca6
lea ecx, [ecx]
mov eax, dword [edi + 0x4c]
test eax, eax
jle 0x46b594
mov ecx, dword [edi]
cdq
idiv ecx
mov dword [esp + 0xc], eax
cmp eax, ebx
jle 0x46b56a
mov eax, ebx
mov dword [esp + 0xc], ebx
imul ecx, eax
add ecx, ecx
push ecx
push dword [edi + 0x48]
push esi
call fcn.00504df0
mov ecx, dword [edi]
add esp, 0xc
imul ecx, dword [esp + 0xc]
sub dword [edi + 0x4c], ecx
lea eax, [ecx + ecx]
add dword [edi + 0x48], eax
add esi, eax
sub ebx, dword [esp + 0xc]
jmp 0x46b5a5
mov ecx, dword [ecx]
mov edx, edi
call fcn.00408590
test eax, eax
js case.default.0x466ca6
mov ecx, dword [esp + 0x44]
test ebx, ebx
jg 0x46b550
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0x1b0]
xor ecx, esp
call fcn.00502eb4
mov esp, ebp
pop ebp
ret
cmp ebx, 1
je 0x46b5fd
cmp edx, 0x4b
je 0x46b5fd
cmp ebx, 2
jne case.default.0x466ca6
push dword [ebp + 8]
mov edx, esi
push dword [edi + 0x154]
call fcn.004e1450
add esp, 8
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0x1b0]
xor ecx, esp
call fcn.00502eb4
mov esp, ebp
pop ebp
ret
xor eax, eax
mov dword [esp + 0xc], eax
test ebx, ebx
jle case.default.0x466ca6
jmp 0x46b610
push dword [edi + 0x188]
mov edx, esi
mov ecx, edi
push eax
push dword [ebp + 8]
push dword [edi + 0x154]
push ebx
call fcn.004e1730
mov eax, dword [esp + 0x20]
add esp, 0x14
mov ebx, dword [edi + 8]
inc eax
add esi, 2
mov dword [esp + 0xc], eax
cmp eax, ebx
jl 0x46b610
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0x1b0]
xor ecx, esp
call fcn.00502eb4
mov esp, ebp
pop ebp
ret
xor eax, eax
mov dword [esp + 0xc], eax
test ebx, ebx
jle case.default.0x466ca6
push eax
push dword [ebp + 8]
mov edx, esi
mov ecx, edi
push dword [edi + 0x154]
push ebx
call fcn.004e1a50
mov eax, dword [esp + 0x1c]
add esp, 0x10
mov ebx, dword [edi + 8]
inc eax
add esi, 2
mov dword [esp + 0xc], eax
cmp eax, ebx
jl 0x46b663
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0x1b0]
xor ecx, esp
call fcn.00502eb4
mov esp, ebp
pop ebp
ret
cmp ebx, 1
jle 0x46b6cc
cmp edx, 0x4e
jne 0x46b6cc
xor ecx, ecx
mov dword [esp + 0xc], 1
cmp dword [edi + 0x188], 1
sete cl
xor eax, eax
mov dword [esp + 0x20], ecx
mov dword [esp + 0x14], eax
jmp 0x46b6ee
xor ecx, ecx
cmp dword [edi + 0x188], 1
sete cl
xor eax, eax
mov dword [esp + 0x20], ecx
mov dword [esp + 0x14], eax
mov dword [esp + 0xc], eax
test ebx, ebx
jle case.default.0x466ca6
xor edx, edx
mov dword [esp + 0x10], edx
push ecx
push dword [esp + 0x10]
mov ecx, dword [edi + 0x190]
push eax
push dword [ebp + 8]
add ecx, edx
mov edx, esi
push dword [edi + 0x154]
push ebx
call fcn.004e2f00
mov eax, dword [esp + 0x2c]
add esp, 0x18
mov edx, dword [esp + 0x10]
inc eax
mov ebx, dword [edi + 8]
add edx, 0x30c
mov ecx, dword [esp + 0x20]
add esi, 2
mov dword [esp + 0x14], eax
mov dword [esp + 0x10], edx
cmp eax, ebx
jl 0x46b6f4
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0x1b0]
xor ecx, esp
call fcn.00502eb4
mov esp, ebp
pop ebp
ret
xor ecx, ecx
cmp ebx, 1
setg cl
xor eax, eax
mov dword [esp + 0x44], ecx
mov dword [esp + 0xc], eax
test ebx, ebx
jle case.default.0x466ca6
xor edx, edx
mov dword [esp + 0x10], edx
push ecx
mov ecx, dword [edi + 0x190]
push eax
push dword [ebp + 8]
add ecx, edx
mov edx, esi
push dword [edi + 0x154]
push ebx
call fcn.004e3090
mov eax, dword [esp + 0x20]
add esp, 0x14
mov edx, dword [esp + 0x10]
inc eax
mov ebx, dword [edi + 8]
add edx, 0x30c
mov ecx, dword [esp + 0x44]
add esi, 2
mov dword [esp + 0xc], eax
mov dword [esp + 0x10], edx
cmp eax, ebx
jl 0x46b770
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0x1b0]
xor ecx, esp
call fcn.00502eb4
mov esp, ebp
pop ebp
ret
xor eax, eax
mov dword [esp + 0xc], eax
test ebx, ebx
jle case.default.0x466ca6
xor edx, edx
mov dword [esp + 0x10], edx
lea esp, [esp]
push dword [edi + 0x34]
mov ecx, dword [edi + 0x190]
push eax
push dword [ebp + 8]
add ecx, edx
mov edx, esi
push dword [edi + 0x154]
push ebx
call fcn.004e3270
mov eax, dword [esp + 0x20]
add esp, 0x14
mov edx, dword [esp + 0x10]
inc eax
mov ebx, dword [edi + 8]
add edx, 0x30c
add esi, 2
mov dword [esp + 0xc], eax
mov dword [esp + 0x10], edx
cmp eax, ebx
jl 0x46b7e0
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0x1b0]
xor ecx, esp
call fcn.00502eb4
mov esp, ebp
pop ebp
ret
mov dword [esp + 0xc], 0
test ebx, ebx
jle case.default.0x466ca6
xor edx, edx
mov dword [esp + 0x10], edx
lea esp, [esp]
push dword [ebp + 8]
mov ecx, dword [edi + 0x190]
push dword [edi + 0x154]
add ecx, edx
mov edx, esi
push ebx
call fcn.004e3520
mov eax, dword [esp + 0x18]
add esp, 0xc
mov edx, dword [esp + 0x10]
inc eax
mov ebx, dword [edi + 8]
add edx, 0x30c
add esi, 2
mov dword [esp + 0xc], eax
mov dword [esp + 0x10], edx
cmp eax, ebx
jl 0x46b850
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0x1b0]
xor ecx, esp
call fcn.00502eb4
mov esp, ebp
pop ebp
ret
mov dword [esp + 0xc], 0
test ebx, ebx
jle case.default.0x466ca6
mov eax, dword [ebp + 8]
xor edx, edx
mov dword [esp + 0x10], edx
jmp 0x46b8c0
mov ecx, dword [edi + 0x154]
mov ebx, dword [edi + 0x190]
add ebx, edx
mov dword [esp + 0x44], ecx
lea edx, [ecx + eax]
mov dword [esp + 0x20], edx
cmp ecx, edx
jge 0x46b99d
mov dword [esp + 0x3c], esi
mov edi, ecx
mov ecx, dword [ebx]
mov eax, edi
cdq
sub eax, edx
sar eax, 1
add eax, dword [ebx + 8]
cdq
push 1
push edx
push eax
lea eax, [esp + 0x44]
push eax
mov eax, dword [ecx]
push ecx
call eax
add esp, 0x14
cmp eax, 1
je 0x46b90e
or al, 0xff
jmp 0x46b912
mov al, byte [esp + 0x38]
mov ecx, edi
movzx edx, al
and ecx, 1
shl ecx, 2
shr edx, cl
mov ecx, dword [ebx + 0x2c4]
and edx, 0xf
shl ecx, 4
add ecx, edx
movsx eax, word [ecx*2 + 0x52ff88]
add dword [ebx + 0x2b4], eax
mov edx, dword [ebx + 0x2b4]
movzx eax, byte [ecx + 0x52ff08]
mov dword [ebx + 0x2c4], eax
cmp edx, 0xffff8000
jge 0x46b967
mov dword [ebx + 0x2b4], 0xffff8000
mov eax, 0xffff8000
jmp 0x46b981
movzx eax, dx
cmp edx, 0x7fff
jle 0x46b981
mov dword [ebx + 0x2b4], 0x7fff
mov eax, 0x7fff
mov word [esi], ax
inc edi
add esi, 2
cmp edi, dword [esp + 0x20]
jl 0x46b8e7
mov edi, dword [esp + 0x30]
mov esi, dword [esp + 0x1c]
mov eax, dword [ebp + 8]
mov ecx, dword [esp + 0xc]
add esi, 2
mov edx, dword [esp + 0x10]
inc ecx
add edx, 0x30c
mov dword [esp + 0xc], ecx
mov dword [esp + 0x10], edx
mov dword [esp + 0x1c], esi
cmp ecx, dword [edi + 8]
jl 0x46b8c0
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0x1b0]
xor ecx, esp
call fcn.00502eb4
mov esp, ebp
pop ebp
ret
mov dword [esp + 0xc], 0
test ebx, ebx
jle case.default.0x466ca6
xor edx, edx
mov dword [esp + 0x10], edx
nop
push dword [ebp + 8]
mov ecx, dword [edi + 0x190]
push dword [edi + 0x154]
add ecx, edx
mov edx, esi
push ebx
call fcn.004ed4f0
mov eax, dword [esp + 0x18]
add esp, 0xc
mov edx, dword [esp + 0x10]
inc eax
mov ebx, dword [edi + 8]
add edx, 0x30c
add esi, 2
mov dword [esp + 0xc], eax
mov dword [esp + 0x10], edx
cmp eax, ebx
jl 0x46b9f0
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0x1b0]
xor ecx, esp
call fcn.00502eb4
mov esp, ebp
pop ebp
ret
mov dword [esp + 0xc], 0
test ebx, ebx
jle case.default.0x466ca6
xor edx, edx
mov dword [esp + 0x10], edx
jmp 0x46ba60
push dword [ebp + 8]
mov ecx, dword [edi + 0x190]
push dword [edi + 0x154]
add ecx, edx
mov edx, esi
push ebx
call fcn.004ee200
mov eax, dword [esp + 0x18]
add esp, 0xc
mov edx, dword [esp + 0x10]
inc eax
mov ebx, dword [edi + 8]
add edx, 0x30c
add esi, 2
mov dword [esp + 0xc], eax
mov dword [esp + 0x10], edx
cmp eax, ebx
jl 0x46ba60
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0x1b0]
xor ecx, esp
call fcn.00502eb4
mov esp, ebp
pop ebp
ret
mov dword [esp + 0x10], 0
test ebx, ebx
jle case.default.0x466ca6
mov eax, dword [ebp + 8]
mov dword [esp + 0x24], 0
lea ecx, [ecx]
mov edx, dword [edi + 0x154]
mov ecx, dword [edi + 0x190]
add ecx, dword [esp + 0x24]
mov dword [esp + 0xc], ecx
lea esi, [edx + eax]
mov dword [esp + 0x44], edx
mov dword [esp + 0x20], esi
cmp edx, esi
mov ecx, dword [ecx + 0x2b4]
mov esi, dword [esp + 0x1c]
mov dword [esp + 0x14], ecx
jge 0x46bb85
lea eax, [ebx + ebx]
mov edi, ecx
mov ebx, esi
mov dword [esp + 0x3c], eax
mov esi, edx
mov eax, dword [esp + 0xc]
push 1
mov ecx, dword [eax]
mov eax, dword [eax + 8]
add eax, esi
cdq
push edx
push eax
lea eax, [esp + 0x44]
push eax
mov eax, dword [ecx]
push ecx
call eax
add esp, 0x14
cmp eax, 1
je 0x46bb38
or al, 0xff
jmp 0x46bb3c
mov al, byte [esp + 0x38]
movzx eax, al
add edi, dword [eax*4 + 0x5308c8]
cmp edi, 0x7fff
jle 0x46bb55
mov eax, 0x7fff
jmp 0x46bb64
mov eax, 0xffff8000
cmp edi, 0xffff8000
jl 0x46bb64
mov eax, edi
mov word [ebx], ax
inc esi
add ebx, dword [esp + 0x3c]
cmp esi, dword [esp + 0x20]
jl 0x46bb12
mov esi, dword [esp + 0x1c]
mov eax, dword [ebp + 8]
mov dword [esp + 0x14], edi
mov edi, dword [esp + 0x30]
mov ecx, dword [esp + 0x14]
mov edx, dword [esp + 0xc]
add esi, 2
add dword [esp + 0x24], 0x30c
mov dword [esp + 0x1c], esi
mov dword [edx + 0x2b4], ecx
mov ecx, dword [esp + 0x10]
mov ebx, dword [edi + 8]
inc ecx
mov dword [esp + 0x10], ecx
cmp ecx, ebx
jl 0x46bad0
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0x1b0]
xor ecx, esp
call fcn.00502eb4
mov esp, ebp
pop ebp
ret
mov dword [esp + 0x20], 0
test ebx, ebx
jle case.default.0x466ca6
xor esi, esi
mov dword [esp + 0x28], esi
lea ecx, [ecx]
mov edx, dword [edi + 0x190]
xor eax, eax
mov ecx, dword [edi + 0x154]
add edx, esi
mov dword [esp + 0x54], eax
mov dword [esp + 0x58], eax
mov dword [esp + 0x5c], eax
mov esi, dword [edx]
mov dword [esp + 0x60], eax
mov dword [esp + 0x64], eax
mov dword [esp + 0x68], eax
mov dword [esp + 0x6c], eax
movsx eax, word [edx + 0x2b4]
mov dword [esp + 0x24], eax
movsx eax, word [edx + 0x2b8]
mov dword [esp + 0xc], eax
mov eax, 0x2f684bdb
mov dword [esp + 0x10], edx
mul ecx
mov eax, ecx
mov dword [esp + 0x14], ecx
sub eax, edx
shr eax, 1
add eax, edx
shr eax, 5
push 0x1c
lea ecx, [eax*8]
sub ecx, eax
mov eax, dword [esp + 0x14]
mov eax, dword [eax + 8]
lea eax, [eax + ecx*4]
cdq
push edx
push eax
lea eax, [esp + 0x60]
push eax
mov eax, dword [esi]
push esi
call eax
or al, 0xff
add esp, 0x14
sub al, byte [esp + 0x54]
movzx edx, al
mov eax, edx
and eax, 0xf
movsx ecx, word [eax*4 + 0x531bd8]
movsx eax, word [eax*4 + 0x531bda]
mov dword [esp + 0x44], eax
mov eax, dword [ebp + 8]
mov dword [esp + 0x3c], ecx
mov ecx, dword [esp + 0x14]
add eax, ecx
mov dword [esp + 0x18], eax
cmp ecx, eax
jge 0x46bd41
mov edi, dword [esp + 0x24]
mov eax, 0xc
shr edx, 4
sub eax, edx
mov edx, dword [esp + 0xc]
mov dword [esp + 0x34], eax
lea eax, [ebx + ebx]
mov ebx, dword [esp + 0x1c]
mov dword [esp + 0x4c], eax
nop
mov eax, ecx
test eax, eax
jns 0x46bcc9
add eax, 1
sar eax, 1
movzx eax, byte [esp + eax + 0x55]
test cl, 1
je 0x46bcda
shr eax, 4
jmp 0x46bcdd
and eax, 0xf
mov esi, dword [eax*4 + 0x531c18]
mov eax, edi
imul eax, dword [esp + 0x3c]
imul edx, dword [esp + 0x44]
mov ecx, dword [esp + 0x34]
shl esi, cl
add eax, edx
cdq
and edx, 0x3f
add eax, edx
sar eax, 6
add eax, esi
cmp eax, 0x7fff
jle 0x46bd11
mov eax, 0x7fff
jmp 0x46bd1d
cmp eax, 0xffff8000
jge 0x46bd1d
mov eax, 0xffff8000
mov ecx, dword [esp + 0x14]
mov edx, edi
inc ecx
mov word [ebx], ax
add ebx, dword [esp + 0x4c]
mov edi, eax
mov dword [esp + 0x14], ecx
cmp ecx, dword [esp + 0x18]
jl 0x46bcc0
mov dword [esp + 0x24], edi
mov edi, dword [esp + 0x30]
jmp 0x46bd45
mov edx, dword [esp + 0xc]
mov ecx, dword [esp + 0x10]
mov eax, dword [esp + 0x24]
mov esi, dword [esp + 0x28]
add dword [esp + 0x1c], 2
add esi, 0x30c
mov word [ecx + 0x2b4], ax
mov eax, dword [esp + 0x20]
inc eax
mov word [ecx + 0x2b8], dx
mov ebx, dword [edi + 8]
mov dword [esp + 0x20], eax
mov dword [esp + 0x28], esi
cmp eax, ebx
jl 0x46bbe0
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0x1b0]
xor ecx, esp
call fcn.00502eb4
mov esp, ebp
pop ebp
ret
mov dword [esp + 0x14], 0
test ebx, ebx
jle case.default.0x466ca6
xor ecx, ecx
mov dword [esp + 0x20], ecx
lea ecx, [ecx]
mov eax, dword [edi + 0x154]
mov dword [esp + 0x40], eax
mov eax, dword [edi + 0x190]
add eax, ecx
push 0x110
mov dword [esp + 0x14], eax
lea eax, [esp + 0x7c]
push 0
push eax
call fcn.00504370
mov edx, dword [esp + 0x1c]
add esp, 0xc
movsx eax, word [edx + 0x2b4]
mov dword [esp + 0x38], eax
mov eax, dword [edx + 0x2c4]
mov dword [esp + 0x2c], eax
mov eax, dword [esp + 0x14]
and eax, reloc.libg719_decode.dll_Ordinal_1
jns 0x46be03
dec eax
or eax, 0xfffffffe
inc eax
mov ecx, dword [edx]
mov dword [esp + 0x18], eax
mov eax, dword [edx + 8]
cdq
push 0x110
push edx
push eax
lea eax, [esp + 0x84]
push eax
mov eax, dword [ecx]
push ecx
call eax
add esp, 0x14
cmp dword [esp + 0x40], 0
jne 0x46be86
mov edx, dword [esp + 0x18]
movzx eax, byte [esp + edx*2 + 0x7d]
shl ax, 8
movsx ecx, ax
movzx eax, byte [esp + edx*2 + 0x7c]
or ecx, eax
movzx eax, byte [esp + edx*4 + 0x81]
shl ax, 8
movsx edx, ax
mov eax, dword [esp + 0x18]
mov dword [esp + 0x2c], ecx
movzx eax, byte [esp + eax*4 + 0x80]
or edx, eax
mov dword [esp + 0x38], edx
test ecx, ecx
jns 0x46be79
mov dword [esp + 0x2c], 0
jmp 0x46be86
cmp ecx, 0x1f
jle 0x46be86
mov dword [esp + 0x2c], 0x1f
mov eax, dword [ebp + 8]
add eax, dword [esp + 0x40]
mov dword [esp + 0x3c], eax
cmp dword [esp + 0x40], eax
jge 0x46bf4c
mov ecx, dword [esp + 0x18]
lea eax, [ebx + ebx]
mov edi, dword [esp + 0x2c]
mov ebx, dword [esp + 0x40]
shl ecx, 7
mov dword [esp + 0xc], esi
mov esi, dword [esp + 0x38]
mov dword [esp + 0x18], ecx
mov dword [esp + 0x44], eax
lea ecx, [ecx]
mov eax, ebx
cdq
sub eax, edx
sar eax, 1
add eax, ecx
mov ecx, ebx
and ecx, 1
shl ecx, 2
movzx edx, byte [esp + eax + 0x88]
mov eax, edi
shr edx, cl
shl eax, 4
and edx, 0xf
add eax, edx
movsx eax, word [eax*2 + 0x531e58]
add esi, eax
cmp esi, 0x7fff
jle 0x46befe
mov esi, 0x7fff
jmp 0x46bf0b
cmp esi, 0xffff8000
jge 0x46bf0b
mov esi, 0xffff8000
mov eax, dword [esp + 0xc]
mov word [eax], si
add eax, dword [esp + 0x44]
add edi, dword [edx*4 + 0x532258]
mov dword [esp + 0xc], eax
jns 0x46bf27
xor edi, edi
jmp 0x46bf31
cmp edi, 0x1f
jle 0x46bf31
mov edi, 0x1f
mov ecx, dword [esp + 0x18]
inc ebx
cmp ebx, dword [esp + 0x3c]
jl 0x46bec0
mov dword [esp + 0x38], esi
mov esi, dword [esp + 0x1c]
mov dword [esp + 0x2c], edi
mov edi, dword [esp + 0x30]
mov ecx, dword [esp + 0x10]
add esi, 2
mov eax, dword [esp + 0x2c]
mov dword [esp + 0x1c], esi
mov dword [ecx + 0x2c4], eax
mov eax, dword [esp + 0x38]
mov word [ecx + 0x2b4], ax
mov eax, dword [esp + 0x14]
mov ecx, dword [esp + 0x20]
inc eax
mov ebx, dword [edi + 8]
add ecx, 0x30c
mov dword [esp + 0x14], eax
mov dword [esp + 0x20], ecx
cmp eax, ebx
jl 0x46bdb0
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0x1b0]
xor ecx, esp
call fcn.00502eb4
mov esp, ebp
pop ebp
ret
xor eax, eax
mov dword [esp + 0xc], eax
test ebx, ebx
jle case.default.0x466ca6
xor edx, edx
mov dword [esp + 0x10], edx
jmp 0x46bfc0
push dword [edi + 0x188]
mov ecx, dword [edi + 0x190]
push eax
push dword [ebp + 8]
add ecx, edx
mov edx, esi
push dword [edi + 0x154]
push ebx
call fcn.004ee8c0
mov eax, dword [esp + 0x20]
add esp, 0x14
mov edx, dword [esp + 0x10]
inc eax
mov ebx, dword [edi + 8]
add edx, 0x30c
add esi, 2
mov dword [esp + 0xc], eax
mov dword [esp + 0x10], edx
cmp eax, ebx
jl 0x46bfc0
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0x1b0]
xor ecx, esp
call fcn.00502eb4
mov esp, ebp
pop ebp
ret
xor eax, eax
mov dword [esp + 0xc], eax
test ebx, ebx
jle case.default.0x466ca6
xor ecx, ecx
mov dword [esp + 0x10], ecx
lea ecx, [ecx]
mov edx, dword [edi + 0x190]
push eax
push dword [ebp + 8]
add edx, ecx
mov ecx, edi
push dword [edi + 0x154]
push ebx
push esi
call fcn.004f0460
mov eax, dword [esp + 0x20]
add esp, 0x14
mov ecx, dword [esp + 0x10]
inc eax
mov ebx, dword [edi + 8]
add ecx, 0x30c
add esi, 2
mov dword [esp + 0xc], eax
mov dword [esp + 0x10], ecx
cmp eax, ebx
jl 0x46c030
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0x1b0]
xor ecx, esp
call fcn.00502eb4
mov esp, ebp
pop ebp
ret
mov dword [esp + 0xc], 0
test ebx, ebx
jle case.default.0x466ca6
xor edx, edx
mov dword [esp + 0x10], edx
lea ebx, [ebx]
push dword [ebp + 8]
mov ecx, dword [edi + 0x190]
push dword [edi + 0x154]
add ecx, edx
mov edx, esi
push ebx
call fcn.004edf70
mov eax, dword [esp + 0x18]
add esp, 0xc
mov edx, dword [esp + 0x10]
inc eax
mov ebx, dword [edi + 8]
add edx, 0x30c
add esi, 2
mov dword [esp + 0xc], eax
mov dword [esp + 0x10], edx
cmp eax, ebx
jl 0x46c0a0
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0x1b0]
xor ecx, esp
call fcn.00502eb4
mov esp, ebp
pop ebp
ret
mov dword [esp + 0xc], 0
test ebx, ebx
jle case.default.0x466ca6
xor edx, edx
mov dword [esp + 0x10], edx
jmp 0x46c110
push dword [ebp + 8]
mov ecx, dword [edi + 0x190]
push dword [edi + 0x154]
add ecx, edx
mov edx, esi
push ebx
call fcn.004ec590
mov eax, dword [esp + 0x18]
add esp, 0xc
mov edx, dword [esp + 0x10]
inc eax
mov ebx, dword [edi + 8]
add edx, 0x30c
add esi, 2
mov dword [esp + 0xc], eax
mov dword [esp + 0x10], edx
cmp eax, ebx
jl 0x46c110
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0x1b0]
xor ecx, esp
call fcn.00502eb4
mov esp, ebp
pop ebp
ret
mov dword [esp + 0x20], 0
test ebx, ebx
jle case.default.0x466ca6
xor eax, eax
mov dword [esp + 0x4c], eax
jmp 0x46c180
mov ecx, dword [edi + 0x190]
mov edx, dword [edi + 0x154]
add ecx, eax
xor eax, eax
mov dword [esp + 0x14], edx
mov dword [esp + 0x54], eax
mov dword [esp + 0x58], eax
mov dword [esp + 0x5c], eax
mov dword [esp + 0x60], eax
mov eax, dword [ecx + 0x2b4]
mov dword [esp + 0xc], eax
mov eax, dword [ecx + 0x2b8]
mov dword [esp + 0x24], eax
mov eax, 0x88888889
mul edx
mov dword [esp + 0x10], ecx
mov eax, dword [esp + 0x10]
and edx, 0xfffffff0
mov ecx, dword [ecx]
push 0x10
add edx, dword [eax + 8]
mov eax, edx
cdq
push edx
push eax
lea eax, [esp + 0x60]
push eax
mov eax, dword [ecx]
push ecx
call eax
mov al, byte [esp + 0x68]
add esp, 0x14
mov ecx, dword [esp + 0x14]
and al, 0xf0
movzx edx, al
mov eax, dword [ebp + 8]
neg edx
sbb edx, edx
add eax, ecx
and edx, 0x40
mov dword [esp + 0x28], eax
mov dword [esp + 0x34], edx
cmp ecx, eax
jge 0x46c2b3
mov eax, dword [esp + 0x54]
mov edi, esi
mov esi, dword [esp + 0x24]
movzx eax, al
and eax, 0xf
add eax, 6
mov dword [esp + 0x44], eax
lea eax, [ebx + ebx]
mov ebx, dword [esp + 0xc]
mov dword [esp + 0x3c], eax
mov edi, edi
mov eax, ecx
test eax, eax
jns 0x46c239
add eax, 1
sar eax, 1
movzx eax, byte [esp + eax + 0x55]
test cl, 1
je 0x46c24a
shr eax, 4
jmp 0x46c24d
and eax, 0xf
mov eax, dword [eax*4 + 0x52fd20]
mov ecx, dword [esp + 0x44]
imul edx, esi
shl eax, cl
add edx, eax
mov eax, ebx
shl eax, 6
add edx, eax
sar edx, 6
cmp edx, 0x7fff
jle 0x46c278
mov eax, 0x7fff
jmp 0x46c287
mov eax, 0xffff8000
cmp edx, 0xffff8000
jl 0x46c287
mov eax, edx
mov ecx, dword [esp + 0x14]
mov esi, ebx
inc ecx
mov word [edi], ax
add edi, dword [esp + 0x3c]
mov ebx, edx
mov edx, dword [esp + 0x34]
mov dword [esp + 0x14], ecx
cmp ecx, dword [esp + 0x28]
jl 0x46c230
mov edi, dword [esp + 0x30]
mov dword [esp + 0x24], esi
mov esi, dword [esp + 0x1c]
jmp 0x46c2b7
mov ebx, dword [esp + 0xc]
mov ecx, dword [esp + 0x10]
add esi, 2
mov eax, dword [esp + 0x24]
add dword [esp + 0x4c], 0x30c
mov dword [esp + 0x1c], esi
mov dword [ecx + 0x2b8], eax
mov eax, dword [esp + 0x20]
inc eax
mov dword [ecx + 0x2b4], ebx
mov ebx, dword [edi + 8]
cmp eax, ebx
mov dword [esp + 0x20], eax
mov eax, dword [esp + 0x4c]
jl 0x46c180
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0x1b0]
xor ecx, esp
call fcn.00502eb4
mov esp, ebp
pop ebp
ret
mov dword [esp + 0x10], 0
test ebx, ebx
jle case.default.0x466ca6
xor edx, edx
mov dword [esp + 0x20], edx
lea ecx, [ecx]
mov eax, dword [edi + 0x190]
mov ecx, dword [edi + 0x154]
add eax, edx
mov dword [esp + 0xc], eax
mov esi, ecx
push 8
mov dword [esp + 0x50], 0
mov eax, dword [eax + 0x2b4]
mov dword [esp + 0x28], eax
mov eax, 0x24924925
mul ecx
mov eax, ecx
mov dword [esp + 0x54], 0
sub esi, edx
mov ecx, 0xe
shr esi, 1
add esi, edx
xor edx, edx
div ecx
mov eax, dword [esp + 0x10]
shr esi, 3
mov dword [esp + 0x18], edx
mov ecx, dword [eax]
mov eax, dword [eax + 8]
lea eax, [eax + esi*8]
cdq
push edx
push eax
lea eax, [esp + 0x58]
push eax
mov eax, dword [ecx]
push ecx
call eax
movzx ecx, byte [esp + 0x60]
mov edx, 0xc
mov eax, ecx
add esp, 0x14
shr eax, 4
and ecx, 0xf
sub edx, eax
mov eax, dword [ecx*4 + 0x530888]
mov ecx, dword [esp + 0x14]
mov dword [esp + 0x3c], eax
mov eax, dword [ebp + 8]
add eax, ecx
mov dword [esp + 0x34], eax
cmp ecx, eax
jge 0x46c431
mov esi, dword [esp + 0x1c]
mov edi, dword [esp + 0x24]
movsx eax, dx
mov dword [esp + 0x44], eax
lea eax, [ebx + ebx]
mov ebx, dword [esp + 0x44]
mov dword [esp + 0x28], eax
lea esp, [esp]
mov eax, ecx
test eax, eax
jns 0x46c3e9
add eax, 1
sar eax, 1
movzx eax, byte [esp + eax + 0x4d]
test cl, 1
jne 0x46c3f8
shr eax, 4
imul edi, dword [esp + 0x3c]
mov cl, bl
shl eax, 0xc
movsx edx, ax
sar edx, cl
mov ecx, dword [esp + 0x14]
sar edi, 0x10
inc ecx
add edi, edx
mov dword [esp + 0x14], ecx
lea eax, [edi*4]
mov word [esi], ax
add esi, dword [esp + 0x28]
cmp ecx, dword [esp + 0x34]
jl 0x46c3e0
mov dword [esp + 0x24], edi
mov edi, dword [esp + 0x30]
mov ecx, dword [esp + 0xc]
mov eax, dword [esp + 0x24]
mov edx, dword [esp + 0x20]
add dword [esp + 0x1c], 2
add edx, 0x30c
mov dword [ecx + 0x2b4], eax
mov eax, dword [esp + 0x10]
mov ebx, dword [edi + 8]
inc eax
mov dword [esp + 0x10], eax
mov dword [esp + 0x20], edx
cmp eax, ebx
jl 0x46c320
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0x1b0]
xor ecx, esp
call fcn.00502eb4
mov esp, ebp
pop ebp
ret
mov dword [esp + 0x10], 0
test ebx, ebx
jle case.default.0x466ca6
xor edx, edx
mov dword [esp + 0x20], edx
mov ebx, dword [edi + 0x24]
xor ecx, ecx
mov eax, dword [edi + 0x154]
mov edi, dword [edi + 0x190]
add edi, edx
mov dword [esp + 0x18], eax
mov dword [esp + 0x54], ecx
xor edx, edx
mov dword [esp + 0x58], ecx
mov dword [esp + 0x5c], ecx
mov dword [esp + 0x60], ecx
mov dword [esp + 0x64], ecx
mov byte [esp + 0x68], cl
mov dword [esp + 0x44], ecx
lea ecx, [ebx*2 - 0xa]
div ecx
mov esi, dword [edi]
imul eax, ebx
push ebx
add eax, dword [edi + 8]
cdq
push edx
push eax
lea eax, [esp + 0x60]
push eax
mov eax, dword [esi]
push esi
call eax
movzx ecx, byte [esp + 0x69]
add esp, 0x14
movzx eax, byte [esp + 0x54]
mov ebx, dword [ebp + 8]
mov edx, dword [esp + 0x1c]
shl cx, 8
or cx, ax
movzx eax, byte [esp + 0x56]
movzx esi, cx
movzx ecx, byte [esp + 0x57]
shl cx, 8
or cx, ax
mov dword [esp + 0xc], esi
movzx eax, byte [esp + 0x58]
movzx edi, cx
movzx ecx, byte [esp + 0x59]
shl cx, 8
or cx, ax
mov dword [esp + 0x14], edi
movzx eax, cx
mov dword [esp + 0x3c], eax
mov eax, dword [esp + 0x18]
test eax, eax
jg 0x46c554
test ebx, ebx
jle 0x46c5be
mov word [edx], si
mov esi, 1
jmp 0x46c5c2
xor esi, esi
cmp eax, 1
jle 0x46c5c2
mov ecx, dword [esp + 0x2c]
lea edi, [eax + ebx]
mov dword [esp + 0x44], eax
mov dword [esp + 0x24], edi
cmp eax, edi
jge 0x46c63b
mov eax, dword [esp + 0x3c]
movzx eax, ax
shl eax, 0xe
mov dword [esp + 0x3c], eax
lea eax, [ecx + ecx]
mov dword [esp + 0x34], eax
mov eax, esi
imul eax, ecx
lea edi, [edx + eax*2]
mov edx, dword [esp + 0x44]
mov eax, 2
sub eax, dword [esp + 0x18]
mov dword [esp + 0x28], eax
mov eax, edx
test eax, eax
jns 0x46c5ad
add eax, 1
sar eax, 1
movzx ecx, byte [esp + eax + 0x5a]
test dl, 1
je 0x46c5da
shr ecx, 4
jmp 0x46c5dd
mov esi, dword [esp + 0x44]
mov ecx, dword [esp + 0x2c]
cmp esi, ebx
jge 0x46c563
mov eax, esi
imul eax, ecx
inc esi
mov word [edx + eax*2], di
mov eax, dword [esp + 0x18]
jmp 0x46c563
and ecx, 0xf
mov ecx, dword [ecx*4 + 0x52fde0]
mov eax, dword [esp + 0xc]
imul ecx, dword [esp + 0x3c]
cwde
imul eax, eax, 0x3350
sub ecx, eax
mov eax, dword [esp + 0x14]
cwde
imul eax, eax, 0x7298
add ecx, eax
mov eax, dword [esp + 0x28]
add eax, edx
sar ecx, 0xe
cmp eax, dword [esp + 0x18]
jl 0x46c61e
cmp esi, ebx
jge 0x46c61e
mov word [edi], cx
inc esi
add edi, dword [esp + 0x34]
mov eax, dword [esp + 0x14]
inc edx
movzx eax, ax
mov dword [esp + 0xc], eax
movzx eax, cx
mov dword [esp + 0x14], eax
cmp edx, dword [esp + 0x24]
jl 0x46c5a4
mov edi, dword [esp + 0x30]
mov ecx, dword [esp + 0x10]
mov edx, dword [esp + 0x20]
inc ecx
add dword [esp + 0x1c], 2
add edx, 0x30c
mov eax, dword [edi + 8]
mov dword [esp + 0x10], ecx
mov dword [esp + 0x20], edx
mov dword [esp + 0x2c], eax
cmp ecx, eax
jl 0x46c491
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0x1b0]
xor ecx, esp
call fcn.00502eb4
mov esp, ebp
pop ebp
ret
mov dword [esp + 0xc], 0
test ebx, ebx
jle case.default.0x466ca6
xor edx, edx
mov dword [esp + 0x10], edx
jmp 0x46c6a0
push dword [edi + 0x24]
mov ecx, dword [edi + 0x190]
push dword [ebp + 8]
add ecx, edx
mov edx, esi
push dword [edi + 0x154]
push ebx
call fcn.004ee6d0
mov eax, dword [esp + 0x1c]
add esp, 0x10
mov edx, dword [esp + 0x10]
inc eax
mov ebx, dword [edi + 8]
add edx, 0x30c
add esi, 2
mov dword [esp + 0xc], eax
mov dword [esp + 0x10], edx
cmp eax, ebx
jl 0x46c6a0
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0x1b0]
xor ecx, esp
call fcn.00502eb4
mov esp, ebp
pop ebp
ret
mov dword [esp + 0xc], 0
test ebx, ebx
jle case.default.0x466ca6
xor edx, edx
mov dword [esp + 0x10], edx
jmp 0x46c710
push dword [edi + 0x188]
mov ecx, dword [edi + 0x190]
push dword [ebp + 8]
add ecx, edx
mov edx, esi
push dword [edi + 0x154]
push ebx
call fcn.004e83b0
mov eax, dword [esp + 0x1c]
add esp, 0x10
mov edx, dword [esp + 0x10]
inc eax
mov ebx, dword [edi + 8]
add edx, 0x30c
add esi, 2
mov dword [esp + 0xc], eax
mov dword [esp + 0x10], edx
cmp eax, ebx
jl 0x46c710
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0x1b0]
xor ecx, esp
call fcn.00502eb4
mov esp, ebp
pop ebp
ret
xor eax, eax
mov dword [esp + 0xc], eax
test ebx, ebx
jle case.default.0x466ca6
xor edx, edx
mov dword [esp + 0x10], edx
lea esp, [esp]
mov ecx, dword [edi + 0x190]
push eax
push dword [ebp + 8]
add ecx, edx
mov edx, esi
push dword [edi + 0x154]
push ebx
call fcn.004e85d0
mov eax, dword [esp + 0x1c]
add esp, 0x10
mov edx, dword [esp + 0x10]
inc eax
mov ebx, dword [edi + 8]
add edx, 0x30c
add esi, 2
mov dword [esp + 0xc], eax
mov dword [esp + 0x10], edx
cmp eax, ebx
jl 0x46c780
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0x1b0]
xor ecx, esp
call fcn.00502eb4
mov esp, ebp
pop ebp
ret
xor eax, eax
mov dword [esp + 0xc], eax
test ebx, ebx
jle case.default.0x466ca6
xor edx, edx
mov dword [esp + 0x10], edx
jmp 0x46c7f0
mov ecx, dword [edi + 0x190]
push eax
push dword [ebp + 8]
add ecx, edx
mov edx, esi
push dword [edi + 0x154]
push ebx
call fcn.004e87a0
mov eax, dword [esp + 0x1c]
add esp, 0x10
mov edx, dword [esp + 0x10]
inc eax
mov ebx, dword [edi + 8]
add edx, 0x30c
add esi, 2
mov dword [esp + 0xc], eax
mov dword [esp + 0x10], edx
cmp eax, ebx
jl 0x46c7f0
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0x1b0]
xor ecx, esp
call fcn.00502eb4
mov esp, ebp
pop ebp
ret
mov eax, dword [edi + 0x190]
xor edx, edx
mov ecx, dword [edi + 0x1a4]
mov ebx, dword [ebp + 8]
mov dword [esp + 0xc], ecx
mov eax, dword [eax]
mov dword [esp + 0x44], eax
mov eax, dword [ecx + 0x2c]
mov dword [esp + 0x14], eax
mov dword [esp + 0x24], edx
test ebx, ebx
jle case.default.0x466ca6
lea eax, [ecx + 0x2814]
mov dword [esp + 0x18], eax
jmp 0x46c880
mov edi, dword [ecx + 0x2810]
test edi, edi
je 0x46c91e
mov eax, dword [ecx + 0x2818]
test eax, eax
je 0x46c8bd
cmp edi, eax
jbe 0x46c89e
mov edi, eax
add dword [ecx + 0x2814], edi
sub eax, edi
sub dword [ecx + 0x2810], edi
mov dword [ecx + 0x2818], eax
lea eax, [ecx + 0x2814]
jmp 0x46c937
mov eax, ebx
sub eax, edx
cmp edi, eax
jle 0x46c8d1
mov edi, eax
lea eax, [ecx + 0x2814]
mov dword [esp + 0x18], eax
imul edx, dword [esp + 0x14]
mov eax, edi
imul eax, dword [esp + 0x14]
add eax, eax
push eax
mov eax, dword [esp + 0x1c]
mov eax, dword [eax]
imul eax, dword [esp + 0x18]
add eax, 0x807
lea eax, [ecx + eax*2]
push eax
lea eax, [esi + edx*2]
push eax
call fcn.00504df0
mov ecx, dword [esp + 0x18]
add esp, 0xc
mov edx, dword [esp + 0x24]
lea eax, [ecx + 0x2814]
add dword [eax], edi
add edx, edi
mov dword [esp + 0x24], edx
sub dword [ecx + 0x2810], edi
jmp 0x46c937
mov edx, ecx
mov ecx, dword [esp + 0x44]
call fcn.004e71c0
mov ecx, dword [esp + 0xc]
mov edx, dword [esp + 0x24]
lea eax, [ecx + 0x2814]
mov dword [esp + 0x18], eax
cmp edx, ebx
jl 0x46c880
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0x1b0]
xor ecx, esp
call fcn.00502eb4
mov esp, ebp
pop ebp
ret
mov eax, dword [edi + 0x1a4]
mov ebx, dword [ebp + 8]
mov dword [esp + 0x44], eax
mov eax, dword [edi + 0x190]
mov eax, dword [eax]
mov dword [esp + 0x3c], eax
test ebx, ebx
jle case.default.0x466ca6
mov edi, dword [esp + 0x44]
lea ecx, [ecx]
cmp dword [edi + 0x2c94], 0
jne 0x46c99a
mov edx, edi
mov ecx, eax
call fcn.004f0270
test eax, eax
je case.default.0x466ca6
mov eax, dword [edi + 0x2c94]
mov ecx, ebx
mov dword [esp + 0xc], ecx
cmp ebx, eax
jle 0x46c9b0
mov ecx, eax
mov dword [esp + 0xc], eax
mov eax, dword [edi + 0x2c98]
imul eax, ecx
add eax, eax
push eax
push dword [edi + 0x2c90]
push esi
call fcn.00504df0
mov ecx, dword [esp + 0x18]
add esp, 0xc
mov eax, dword [edi + 0x2c98]
sub ebx, ecx
sub dword [edi + 0x2c94], ecx
imul eax, ecx
add eax, eax
add dword [edi + 0x2c90], eax
add esi, eax
mov eax, dword [esp + 0x3c]
test ebx, ebx
jg 0x46c980
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0x1b0]
xor ecx, esp
call fcn.00502eb4
mov esp, ebp
pop ebp
ret
mov ebx, dword [ebp + 8]
mov edi, dword [edi + 0x1a4]
test ebx, ebx
jle case.default.0x466ca6
jmp 0x46ca20
cmp dword [edi + 0x14], 0
jg 0x46ca7d
mov ecx, dword [edi + 0xc]
mov eax, ebx
mov edx, dword [edi + 8]
mov dword [esp + 0x14], eax
mov dword [edi + 0x10], edx
mov dword [edi + 0x18], 2
mov dword [edi + 0x14], 0
cmp ebx, ecx
jle 0x46ca51
mov eax, ecx
mov dword [esp + 0x14], eax
test al, 1
je 0x46ca5f
cmp eax, 1
jle 0x46ca5f
dec eax
mov dword [esp + 0x14], eax
mov ecx, dword [edi + 4]
shl eax, 2
push eax
call fcn.004d87c0
add esp, 4
test eax, eax
je 0x46cafa
mov eax, dword [esp + 0x14]
mov dword [edi + 0x14], eax
mov edx, dword [edi + 0x1c]
mov ecx, dword [edi + 0x14]
test edx, edx
je 0x46caa2
cmp edx, ecx
jle 0x46ca8d
mov edx, ecx
mov eax, dword [edi + 0x18]
sub ecx, edx
imul eax, edx
mov dword [edi + 0x14], ecx
add eax, eax
add dword [edi + 0x10], eax
sub dword [edi + 0x1c], edx
jmp 0x46cadd
mov edx, ebx
mov dword [esp + 0xc], edx
cmp ebx, ecx
jle 0x46cab2
mov edx, ecx
mov dword [esp + 0xc], ecx
mov eax, dword [edi + 0x18]
imul eax, edx
add eax, eax
push eax
push dword [edi + 0x10]
push esi
call fcn.00504df0
mov ecx, dword [esp + 0x18]
add esp, 0xc
mov eax, dword [edi + 0x18]
sub dword [edi + 0x14], ecx
imul eax, ecx
add eax, eax
add dword [edi + 0x10], eax
add esi, eax
sub ebx, ecx
test ebx, ebx
jg 0x46ca20
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0x1b0]
xor ecx, esp
call fcn.00502eb4
mov esp, ebp
pop ebp
ret
lea eax, [ebx*4]
push eax
push 0
push esi
call fcn.00504370
add esp, 0xc
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0x1b0]
xor ecx, esp
call fcn.00502eb4
mov esp, ebp
pop ebp
ret
xor eax, eax
mov dword [esp + 0xc], eax
test ebx, ebx
jle case.default.0x466ca6
lea esp, [esp]
push eax
push dword [ebp + 8]
mov edx, esi
mov ecx, edi
push ebx
call fcn.004af7c0
mov eax, dword [esp + 0x18]
add esp, 0xc
mov ebx, dword [edi + 8]
inc eax
add esi, 2
mov dword [esp + 0xc], eax
cmp eax, ebx
jl 0x46cb30
mov ecx, dword [esp + 0x1bc]
pop edi
pop esi
pop ebx
xor ecx, esp
call fcn.00502eb4
mov esp, ebp
pop ebp
ret