Function at 0x485486
Capabilities:
Encode data using base64
Resolve function by parsing pe exports

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff0
sub esp, 0x6e4
push ebx
xorps xmm0, xmm0
mov dword [0xc276d8], 0
xor eax, eax
movaps xmmword [esp + 0xa8], xmm0
test dword [0x5cf410], 0x400000
push esi
push edi
movaps xmmword [esp + 0xc0], xmm0
mov word [0xc27676], ax
jne 0x482e76
mov word [0xc2766a], ax
mov ax, word [esp + 0xb0]
mov ebx, 0xe01
mov ecx, dword [esp + 0x14]
mov esi, 0xb0b8b4
mov edx, dword [esp + 0x1c]
movss xmm2, dword [0x55f918]
movss xmm1, dword [0x55cc80]
mov dword [esp + 0x4c], ebx
mov dword [esp + 0xdc], esi
mov dword [esp + 0x7c], eax
mov dword [esp + 0xc], ecx
mov dword [esp + 0x18], edx
mov esi, dword [esi]
mov dword [esp + 0x48], esi
test esi, esi
je 0x485928
mov al, byte [esi]
movzx edi, al
cmp edi, 0x29
ja case.0x482ed3.2
jmp dword [edi*4 + 0x485950]
mov edx, dword [0xc2771c]
mov eax, dword [0xc27720]
sub edx, eax
shr edx, 1
add edx, eax
mov byte [0xc7b008], 0x43
cmp ebx, edx
jae 0x482efd
inc word [0xc27728]
movzx ecx, word [esi + 0x44]
mov dword [esp + 0x20], ecx
mov dword [esp + 0x48], 0
mov dword [esp + 0x34], 0xffffffff
mov al, byte [ecx*8 + 0xb0bc34]
mov cl, byte [ecx*8 + 0xb0bc35]
movzx ebx, al
movzx edi, cl
shr ebx, 1
shr edi, 1
test byte [0x5c9591], 8
mov byte [esp + 0x3f], al
mov byte [esp + 0x2b], cl
je 0x48300a
mov eax, dword [0xc280b4]
shl edi, 7
add edi, ebx
cmp byte [esi + 0x18], 2
movzx ecx, word [eax + edi*2]
jae 0x482f82
cmp byte [esi + 0x2c], 2
jae 0x482f82
cmp byte [esi + 0x40], 2
jae 0x482f82
xor edi, edi
mov dword [esi + 0x40], 0
mov dword [esi + 0x2c], 0
mov dword [esi + 0x18], 0
mov dword [esp + 0x18c], edi
jmp 0x482fa6
push 0
push 0
lea eax, [esp + 0x194]
push eax
push dword [ecx*4 + 0x811418]
mov ecx, 0x845918
call fcn.00468930
mov edi, dword [esp + 0x18c]
test dword [0x5c958d], 0x80000000
mov eax, 0x596540
mov edx, 0x596600
cmovne edx, eax
movzx eax, byte [esi + 0x47]
push 1
push edi
push 0x20
lea ecx, [eax + eax*2]
mov eax, dword [edx + ecx*8]
mov dword [esi + 0x10], eax
mov eax, dword [edx + ecx*8 + 4]
lea ecx, [edx + ecx*8]
mov dword [esi + 0x14], eax
lea edx, [esi + 0x1c]
mov eax, dword [ecx + 8]
mov dword [esi + 0x24], eax
mov eax, dword [ecx + 0xc]
mov dword [esi + 0x28], eax
mov eax, dword [ecx + 0x10]
mov dword [esi + 0x38], eax
mov eax, dword [ecx + 0x14]
lea ecx, [esi + 8]
mov dword [esi + 0x3c], eax
lea eax, [esi + 0x30]
push eax
push edx
push ecx
call fcn.0047c020
add esp, 0x18
jmp 0x4835eb
mov byte [esp + 0x41], cl
mov byte [esp + 0x40], al
mov ax, word [esp + 0x40]
mov word [esp + 0x44], ax
mov word [esp + 0x42], ax
movzx eax, ax
mov ecx, eax
and eax, 0xfe
shr ecx, 1
and ecx, 0x7f00
or ecx, eax
shr ecx, 1
imul eax, ecx, 0x1a
add eax, 0x5d7692
test byte [0x5c9591], 4
mov dword [esp + 0x24], eax
jne 0x483151
movzx ecx, byte [eax + 0x15]
and ecx, 0xf
lea eax, [ecx*8]
sub eax, ecx
test byte [eax*2 + 0x593270], 2
je 0x48314d
cmp dword [esp + 0x4c], edx
jae 0x48307b
inc word [0xc2772c]
movzx eax, byte [esi + 0x47]
and edi, 7
push edi
and ebx, 7
push ebx
lea eax, [eax + eax*2]
lea ecx, [eax*8 + 0x596540]
mov eax, dword [ecx]
mov dword [esi + 0x10], eax
mov eax, dword [ecx + 4]
mov dword [esi + 0x14], eax
mov eax, dword [ecx + 8]
mov dword [esi + 0x24], eax
mov eax, dword [ecx + 0xc]
mov dword [esi + 0x28], eax
mov eax, dword [ecx + 0x10]
mov dword [esi + 0x38], eax
mov eax, dword [ecx + 0x14]
lea ecx, [esp + 0x1b0]
mov dword [esi + 0x3c], eax
lea eax, [esi + 8]
push ecx
push eax
call fcn.0047c2c0
push edi
push ebx
lea ecx, [esp + 0x1e0]
lea eax, [esi + 0x1c]
push ecx
push eax
call fcn.0047c2c0
push edi
push ebx
lea ecx, [esp + 0x210]
lea eax, [esi + 0x30]
push ecx
push eax
call fcn.0047c2c0
mov ecx, dword [0x7fcb70]
lea eax, [esp + 0x218]
add esp, 0x30
cmp byte [0xc27692], 0
push 0
je 0x48312b
push 0x400
push 0x58a8c0
push eax
lea eax, [esp + 0x1d8]
push eax
lea eax, [esp + 0x1bc]
push eax
call fcn.00454730
jmp 0x4835eb
push 0
push 0x58a8c0
push eax
lea eax, [esp + 0x1d8]
push eax
lea eax, [esp + 0x1bc]
push eax
call fcn.00454730
jmp 0x4835eb
mov eax, dword [esp + 0x24]
cmp dword [esp + 0x4c], edx
jae 0x483172
mov ecx, 0x200
cmp word [eax + 4], cx
jle 0x48316b
inc word [0xc27734]
jmp 0x483172
inc word [0xc27730]
mov edx, dword [0x5c958d]
mov dword [esp + 0x38], 0x20
test edx, 0x40000000
jne 0x4831fa
mov eax, dword [0xc680d4]
mov ecx, edi
shl ecx, 7
add ecx, ebx
movsx ecx, word [eax + ecx*2]
cmp ecx, 0xffffffff
je 0x4831fa
mov eax, dword [0xc680d0]
test byte [eax + ecx*8 + 2], 4
je 0x4831fa
cmp dword [0x589fd8], 0
je 0x4831be
mov ecx, dword [0x85caf8]
mov dword [esp + 0x48], ecx
jmp 0x4831d2
lea eax, [ecx*8]
sub eax, ecx
mov eax, dword [eax*4 + 0x85caf8]
mov dword [esp + 0x48], eax
movzx eax, byte [esi + 0x47]
lea eax, [eax + eax*2]
test edx, edx
jns 0x4831e9
lea ecx, [eax*8 + 0x596540]
jmp 0x483276
lea ecx, [eax*8 + 0x596600]
mov edx, 0x10
jmp 0x48327a
mov eax, edi
mov dword [esp + 0x18c], 0x562fd4
xor eax, ebx
mov dword [esp + 0x190], 8
and eax, 0x1f
mov dword [esp + 0x194], 8
xor eax, ebx
mov edx, edi
and edi, 0xffffffe0
shl edx, 7
inc edx
add edx, ebx
and ebx, 0x1f
mov dword [esp + 0x34], edx
lea ecx, [eax + edi*4]
mov eax, dword [0xc280b8]
shl ecx, 8
add ecx, ebx
lea eax, [eax + ecx*8]
mov ecx, 0x847658
mov dword [esp + 0x1a0], eax
lea eax, [esp + 0x18c]
push eax
push edx
call fcn.00466e70
movzx eax, byte [esi + 0x47]
movss xmm2, dword [0x55f918]
lea eax, [eax + eax*2]
lea ecx, [eax*8 + 0x5966c0]
mov edx, dword [esp + 0x38]
mov eax, dword [ecx]
mov dword [esi + 0x10], eax
mov eax, dword [ecx + 4]
mov dword [esi + 0x14], eax
mov eax, dword [ecx + 8]
mov dword [esi + 0x24], eax
mov eax, dword [ecx + 0xc]
add ecx, 0x10
mov dword [esi + 0x28], eax
mov eax, dword [ecx]
mov dword [esi + 0x38], eax
mov eax, dword [ecx + 4]
mov dword [esi + 0x3c], eax
cmp dword [0x58a064], 0
jne case.0x482ed3.2
cmp dword [esp + 0x34], 0
lea ebx, [esi + 0x30]
lea eax, [esi + 0x1c]
lea edi, [esi + 8]
jge 0x4832d3
push 0
push dword [esp + 0x4c]
push edx
push ebx
push eax
push edi
call fcn.0047c020
add esp, 0x18
jmp 0x483440
mov eax, dword [0xad0ce8]
mov ecx, dword [0x58ac94]
mov eax, dword [eax + 0x6d8]
test eax, eax
je 0x4832ed
xorps xmm0, xmm0
jmp 0x48331d
test ecx, ecx
je 0x483311
movss xmm0, dword [0x58a100]
mulss xmm0, xmm2
movss dword [esp + 0x30], xmm0
test ecx, ecx
je 0x483331
movss xmm0, dword [0x58a104]
jmp 0x483339
movss xmm0, dword [0x6cf92c]
mulss xmm0, xmm2
movss dword [esp + 0x30], xmm0
test eax, eax
je 0x483303
movss xmm0, dword [0x55cfb8]
jmp 0x483345
movss xmm0, dword [0x6cf930]
mulss xmm0, xmm2
addss xmm0, dword [0x55cfb8]
push 0xfdb935
push 0xc277e0
push edi
movss dword [esp + 0x38], xmm0
call fcn.0047bd20
movss xmm1, dword [esp + 0x3c]
add esp, 0xc
cmp dword [edi + 8], 0
movss xmm0, dword [esp + 0x2c]
jne 0x483375
movaps xmm2, xmm1
jmp 0x483378
movaps xmm2, xmm0
movss dword [0xc277f8], xmm2
cmp dword [edi + 0xc], 0
jne 0x483389
movaps xmm0, xmm1
push 0xfdb935
push 0xc27800
lea edi, [esi + 0x1c]
movss dword [0xc277fc], xmm0
push edi
call fcn.0047bd20
movss xmm1, dword [esp + 0x3c]
add esp, 0xc
cmp dword [edi + 8], 0
movss xmm0, dword [esp + 0x2c]
jne 0x4833be
movaps xmm2, xmm1
jmp 0x4833c1
movaps xmm2, xmm0
movss dword [0xc27818], xmm2
cmp dword [edi + 0xc], 0
jne 0x4833d2
movaps xmm0, xmm1
push 0xfdb935
push 0xc27820
push ebx
movss dword [0xc2781c], xmm0
call fcn.0047bd20
movss xmm1, dword [esp + 0x3c]
add esp, 0xc
cmp dword [ebx + 8], 0
movss xmm0, dword [esp + 0x2c]
jne 0x483404
movaps xmm2, xmm1
jmp 0x483407
movaps xmm2, xmm0
movss dword [0xc27838], xmm2
cmp dword [ebx + 0xc], 0
je 0x483418
movaps xmm1, xmm0
mov ecx, dword [0x7fcb70]
push 0
push dword [esp + 0x38]
movss dword [0xc2783c], xmm1
push 0xc27820
push 0xc27800
push 0xc277e0
call fcn.004540d0
mov eax, dword [esp + 0x24]
test dword [eax], 0x40000
je 0x4835eb
mov edi, dword [0x5cfe84]
mov edx, edi
mov bh, byte [esp + 0x2b]
and edx, 7
mov eax, edx
movzx ecx, bh
and eax, 0xfffffffe
and ecx, 2
and edx, 1
lea ecx, [ecx + eax*4]
shl ecx, 5
add ecx, edx
mov dh, byte [esp + 0x3f]
movzx eax, dh
and eax, 2
lea eax, [eax + ecx*8]
shl eax, 4
add eax, dword [0xc280c4]
mov dword [0xc7b004], eax
movzx eax, byte [esi + 0x47]
cmp eax, 3
ja case.default.0x483499
jmp dword [eax*4 + 0x4859f8]
mov ch, byte [esp + 0x45]
mov dl, bh
mov bl, dh
add dl, 2
add bl, 2
add ch, 2
jmp 0x483504
mov cl, byte [esp + 0x42]
add bh, 2
mov dl, byte [esp + 0x43]
add cl, 2
mov bl, byte [esp + 0x44]
add dl, 2
mov ch, byte [esp + 0x45]
add bl, 2
jmp 0x483508
mov cl, byte [esp + 0x42]
add dh, 2
mov ch, byte [esp + 0x45]
add bh, 2
mov bl, byte [esp + 0x44]
add cl, 2
mov dl, byte [esp + 0x43]
jmp 0x483508
mov ch, byte [esp + 0x45]
add dh, 2
add ch, 2
jmp 0x4834fc
mov ch, byte [esp + 0x45]
mov dl, byte [esp + 0x43]
mov bl, byte [esp + 0x44]
mov cl, byte [esp + 0x42]
movzx eax, dh
and edi, 0x3f
and eax, 0xfffffffe
shl edi, 5
shl eax, 7
add eax, edi
and eax, 0x7ff
push 0x1f
mov eax, dword [eax*4 + 0x596de0]
lea eax, [eax*8 + 0x200000]
add dword [esi + 0x10], eax
movzx eax, bh
and eax, 0xfffffffe
shl eax, 7
add eax, edi
and eax, 0x7ff
mov eax, dword [eax*4 + 0x5975e0]
lea eax, [eax*8 + 0x200000]
add dword [esi + 0x14], eax
movzx eax, cl
and eax, 0xfffffffe
shl eax, 7
add eax, edi
and eax, 0x7ff
mov eax, dword [eax*4 + 0x596de0]
lea eax, [eax*8 + 0x200000]
add dword [esi + 0x24], eax
movzx eax, dl
and eax, 0xfffffffe
shl eax, 7
add eax, edi
and eax, 0x7ff
mov eax, dword [eax*4 + 0x5975e0]
lea eax, [eax*8 + 0x200000]
add dword [esi + 0x28], eax
movzx eax, bl
and eax, 0xfffffffe
shl eax, 7
add eax, edi
and eax, 0x7ff
mov eax, dword [eax*4 + 0x596de0]
lea eax, [eax*8 + 0x200000]
add dword [esi + 0x38], eax
movzx eax, ch
and eax, 0xfffffffe
shl eax, 7
add eax, edi
and eax, 0x7ff
mov eax, dword [eax*4 + 0x5975e0]
lea eax, [eax*8 + 0x200000]
add dword [esi + 0x3c], eax
lea eax, [esi + 0x30]
push eax
lea eax, [esi + 0x1c]
push eax
lea eax, [esi + 8]
push eax
call dword [0xaf4ee8]
add esp, 0x10
mov dl, byte [esi + 1]
xor edi, edi
mov bl, byte [0x5cf49d]
mov cl, dl
or eax, 0xffffffff
and cl, 1
je 0x483603
movzx eax, bl
test cl, cl
je 0x48361d
movzx eax, byte [0x5cf4a0]
test dl, 4
jne 0x483616
movzx eax, bl
mov cl, 1
mov edi, 1
cmp byte [0xc27691], 0
je 0x48362f
cmp byte [0xc27692], 0
je 0x483633
test cl, cl
je 0x483673
test eax, eax
jns 0x48363e
movzx eax, byte [0x5cf49c]
mov byte [0xc7b008], al
lea eax, [esi + 0x1c]
push eax
lea eax, [esi + 8]
push eax
call fcn.00489370
lea ebx, [esi + 0x30]
lea eax, [esi + 0x1c]
push ebx
push eax
call fcn.00489370
add esp, 0x10
test edi, edi
lea edi, [esi + 8]
je 0x483679
push edi
push ebx
call fcn.00489370
add esp, 8
jmp 0x483679
lea ebx, [esi + 0x30]
lea edi, [esi + 8]
movss xmm0, dword [edi]
lea eax, [esp + 0x10c]
movss dword [esp + 0x24], xmm0
mov dword [esp + 0x10], eax
mov edx, dword [esp + 0x10]
fld dword [esp + 0x24]
fistp dword [edx]
movss xmm0, dword [esi + 0xc]
lea eax, [esp + 0x124]
movss dword [esp + 0x24], xmm0
mov dword [esp + 0x10], eax
mov edx, dword [esp + 0x10]
fld dword [esp + 0x24]
fistp dword [edx]
movss xmm0, dword [esi + 0x1c]
lea eax, [esp + 0x110]
movss dword [esp + 0x24], xmm0
mov dword [esp + 0x10], eax
mov edx, dword [esp + 0x10]
fld dword [esp + 0x24]
fistp dword [edx]
movss xmm0, dword [esi + 0x20]
lea eax, [esp + 0x128]
movss dword [esp + 0x24], xmm0
mov dword [esp + 0x10], eax
mov edx, dword [esp + 0x10]
fld dword [esp + 0x24]
fistp dword [edx]
movss xmm0, dword [ebx]
lea eax, [esp + 0x114]
movss dword [esp + 0x24], xmm0
mov dword [esp + 0x10], eax
mov edx, dword [esp + 0x10]
fld dword [esp + 0x24]
fistp dword [edx]
movss xmm0, dword [esi + 0x34]
lea eax, [esp + 0x12c]
movss dword [esp + 0x24], xmm0
mov dword [esp + 0x10], eax
mov edx, dword [esp + 0x10]
fld dword [esp + 0x24]
fistp dword [edx]
push dword [esp + 0x12c]
movsx eax, word [0xc2764a]
push dword [esp + 0x118]
push dword [esp + 0x130]
push dword [esp + 0x11c]
push dword [esp + 0x134]
push dword [esp + 0x120]
push eax
movsx eax, word [0xc27648]
push eax
call fcn.00488c90
add esp, 0x20
test al, al
je case.0x482ed3.2
xor eax, eax
test dword [0x5cf410], 0x400000
mov word [0xc27676], ax
jne 0x48379b
mov word [0xc2766a], ax
mov ecx, dword [esp + 0x20]
or dword [0xc275c4], 4
mov al, byte [ecx*8 + 0xb0bc34]
mov byte [0xc27660], al
mov al, byte [ecx*8 + 0xb0bc35]
mov byte [0xc27661], al
mov al, byte [esi + 0x46]
mov byte [0xc2769c], al
movzx eax, byte [ecx*8 + 0xb0bc3a]
cmp eax, 3
ja case.default.0x4837d3
jmp dword [eax*4 + 0x485a08]
cvttss2si eax, dword [edi]
mov word [0xc27654], ax
cvttss2si eax, dword [esi + 0xc]
jmp 0x483824
cvttss2si eax, dword [esi + 0x1c]
mov word [0xc27654], ax
cvttss2si eax, dword [esi + 0x20]
jmp 0x483824
cvttss2si eax, dword [ebx]
mov word [0xc27654], ax
cvttss2si eax, dword [esi + 0x34]
jmp 0x483824
movzx eax, word [ecx*8 + 0xb0bc36]
mov word [0xc27654], ax
movzx eax, word [ecx*8 + 0xb0bc38]
mov word [0xc27656], ax
cvttss2si eax, dword [edi]
mov word [0xc275b4], ax
cvttss2si eax, dword [esi + 0x1c]
mov word [0xc275b8], ax
cvttss2si eax, dword [ebx]
mov word [0xc275bc], ax
movzx eax, word [ecx*8 + 0xb0bc36]
mov word [0xc275c0], ax
cvttss2si eax, dword [esi + 0xc]
mov word [0xc275b6], ax
cvttss2si eax, dword [esi + 0x20]
mov word [0xc275ba], ax
cvttss2si eax, dword [esi + 0x34]
mov word [0xc275be], ax
movzx eax, word [ecx*8 + 0xb0bc38]
mov word [0xc275c2], ax
jmp case.0x482ed3.2
movzx ecx, byte [esi + 0x47]
cmp ecx, 9
ja case.0x48389b.2
movzx eax, byte [ecx + 0x485a28]
jmp dword [eax*4 + 0x485a18]
movzx edi, byte [esi + 0x46]
lea eax, [edi - 1]
push eax
movzx eax, word [esi + 0x44]
push eax
call fcn.00488620
push eax
push 2
lea eax, [edi - 1]
push eax
lea eax, [esi + 0x30]
push eax
lea eax, [esi + 0x1c]
push eax
lea eax, [esi + 8]
push eax
call fcn.0047bdc0
add esp, 0x20
jmp case.0x48389b.0
push 0
lea eax, [esi + 0x30]
push eax
lea eax, [esi + 0x1c]
push eax
lea eax, [esi + 8]
push eax
call fcn.0047c1e0
add esp, 0x10
jmp case.0x48389b.0
movzx edi, byte [esi + 0x46]
mov al, byte [edi + 0x59316f]
test al, 2
jne 0x483918
test al, 4
je 0x483918
movzx eax, word [esi + 0x44]
mov eax, dword [eax*4 + 0x5c4ea4]
test eax, eax
je 0x483918
cmp byte [eax + 0x36], 4
mov byte [esp + 0xa0], 1
jge 0x483920
mov byte [esp + 0xa0], 0
push dword [esp + 0xa0]
lea eax, [ecx - 1]
push eax
call fcn.0047c250
add esp, 4
push eax
lea eax, [edi - 1]
push eax
lea eax, [esi + 0x30]
push eax
lea eax, [esi + 0x1c]
push eax
lea eax, [esi + 8]
push eax
call fcn.0047bdc0
add esp, 0x18
movzx edx, word [esi + 0x44]
movzx eax, word [0xc27676]
movsx ecx, dx
cmp ecx, eax
je case.0x482ed3.2
xor edi, edi
cmp dx, word [esp + 0xb2]
je 0x483990
mov edi, 1
cmp dx, word [esp + 0xbc]
je 0x483990
mov edi, 2
cmp dx, word [esp + 0xc6]
jne case.0x482ed3.2
cvttss2si eax, dword [esi + 0x34]
push eax
cvttss2si eax, dword [esi + 0x30]
push eax
cvttss2si eax, dword [esi + 0x20]
push eax
cvttss2si eax, dword [esi + 0x1c]
push eax
cvttss2si eax, dword [esi + 0xc]
push eax
cvttss2si eax, dword [esi + 8]
push eax
movsx eax, word [0xc2764a]
push eax
movsx eax, word [0xc27648]
push eax
call fcn.00488c90
add esp, 0x20
test al, al
je case.0x482ed3.2
cmp byte [0xc27696], 0
je 0x483a2e
lea ecx, [edi + edi*4]
movzx eax, word [esp + ecx*2 + 0xb2]
mov word [0xc27676], ax
xor eax, eax
mov word [0xc2766a], ax
movzx eax, word [esp + ecx*2 + 0xb4]
mov word [0xc27678], ax
movzx eax, word [esp + ecx*2 + 0xb6]
mov word [0xc2767a], ax
movzx eax, word [esp + ecx*2 + 0xb8]
mov word [0xc2767c], ax
movzx eax, word [esp + ecx*2 + 0xba]
mov word [0xc2767e], ax
lea eax, [edi + edi*4]
xor ecx, ecx
mov word [esp + eax*2 + 0xb2], cx
mov ax, word [esp + 0xb0]
mov dword [esp + 0x7c], eax
jmp case.0x482ed3.2
movzx eax, byte [esi + 0x44]
push 0
push 2
push eax
lea eax, [esi + 0x30]
push eax
lea eax, [esi + 0x1c]
push eax
lea eax, [esi + 8]
push eax
call fcn.0047bdc0
add esp, 0x18
jmp case.0x482ed3.2
cmp byte [0x5c979b], 0
je case.0x482ed3.2
mov edi, dword [0x5c3ab8]
movsx ebx, word [esi + 0xe]
movsx edx, word [esi + 0xc]
mov ecx, ebx
mov dword [esp + 0x14], edx
lea eax, [edi + 8]
mov dword [esp + 0x1c], ebx
push eax
movzx eax, word [edi + 0xe]
sub ecx, eax
movzx eax, word [edi + 0xc]
shr eax, 1
sub edx, eax
push ecx
add edx, 6
push edx
call fcn.0045fca0
add esp, 0xc
jmp case.0x482ed3.2
mov eax, dword [esi + 8]
cmp byte [eax + 0x10], 0
je 0x483ac8
push dword [0x5c3af4]
jmp 0x483ace
push dword [0x5c3ad0]
push 0x570388
call fcn.0045fc60
mov eax, dword [esi + 8]
add esp, 8
movzx eax, byte [eax + 0x78]
push eax
lea eax, [esp + 0x20c]
push 0x562fdc
push eax
call fcn.00446420
lea eax, [esp + 0x214]
push eax
call fcn.004c1b50
mov ebx, eax
push 0x41
mov dword [esp + 0x20], ebx
call fcn.00402e60
mov dword [esp + 0x2c], eax
mov eax, ebx
cdq
sub eax, edx
add esp, 0xc
movsx edi, word [esi + 0xc]
mov edx, esp
movsx ebx, word [esi + 0xe]
sar eax, 1
sub ebx, 0x14
sub edi, eax
mov dword [esp + 0x24], ebx
mov al, byte [0x59f6bc]
movzx ecx, al
mov byte [edx + 4], al
mov dword [esp + 0x1c], edi
mov al, byte [ecx*4 + 0xc76b98]
mov byte [edx + 2], al
mov al, byte [ecx*4 + 0xc76b99]
mov byte [edx + 1], al
mov al, byte [ecx*4 + 0xc76b9a]
mov byte [edx], al
lea eax, [esp + 0x210]
push eax
push ebx
push edi
mov byte [edx + 3], 0xff
call fcn.00402040
movsx eax, word [0xc27648]
add esp, 0x14
movsx edx, word [0xc2764a]
mov dword [esp + 0x10], edx
mov dword [esp + 0x20], eax
cmp eax, edi
jl 0x483bbe
mov ecx, dword [esp + 0xc]
lea eax, [ecx + edi]
cmp dword [esp + 0x20], eax
jg 0x483bbe
cmp edx, ebx
jl 0x483bbe
mov edx, dword [esp + 0x18]
lea eax, [edx + ebx]
cmp dword [esp + 0x10], eax
jg 0x483bbe
mov eax, dword [esi + 8]
push edx
push ecx
push ebx
movzx eax, word [eax + 0x29]
push edi
push eax
call fcn.0048a1d0
add esp, 0x14
push 0xffff0000
movsx eax, word [esi + 0xe]
sub esp, 0x10
movd xmm0, eax
movsx eax, word [esi + 0xc]
cvtdq2ps xmm0, xmm0
mov dword [esp + 0xc], 0x41600000
mov dword [esp + 8], 0x41600000
movss dword [esp + 4], xmm0
movd xmm0, eax
cvtdq2ps xmm0, xmm0
movss dword [esp], xmm0
call fcn.0045b1e0
add esp, 0x14
jmp case.0x482ed3.2
mov eax, dword [esi + 8]
cmp byte [eax + 0x10], 0
je 0x483c15
push dword [0x5c3af4]
jmp 0x483c1b
push dword [0x5c3ad0]
push 0x570388
call fcn.0045fc60
mov ecx, dword [esi + 8]
add esp, 8
movzx eax, byte [ecx + 0x32]
push eax
movzx eax, byte [ecx + 0x31]
push eax
call fcn.00479b90
mov edx, eax
add esp, 8
mov ecx, edx
lea edi, [ecx + 1]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x483c44
sub ecx, edi
mov dword [esp + 0x20], 0
push 0xffffffffffffffff
push edx
lea eax, [ecx + 1]
push eax
lea eax, [esp + 0x314]
push eax
lea eax, [esp + 0x30]
push eax
call fcn.0050f420
lea eax, [esp + 0x31c]
push eax
lea eax, [esp + 0x220]
push 0x55a834
push eax
call fcn.00446420
lea eax, [esp + 0x228]
push eax
call fcn.004c1b50
mov ebx, eax
push 0x41
mov dword [esp + 0x34], ebx
call fcn.00402e60
movsx edi, word [esi + 0xc]
add esp, 0x20
mov dword [esp + 0x20], eax
mov eax, ebx
movsx ebx, word [esi + 0xe]
cdq
sub ebx, 0x14
sub eax, edx
mov dword [esp + 0x24], ebx
sar eax, 1
mov edx, esp
sub edi, eax
mov al, byte [0x59f6bc]
movzx ecx, al
mov dword [esp + 0x1c], edi
mov byte [edx + 4], al
mov al, byte [ecx*4 + 0xc76b98]
mov byte [edx + 2], al
mov al, byte [ecx*4 + 0xc76b99]
mov byte [edx + 1], al
mov al, byte [ecx*4 + 0xc76b9a]
mov byte [edx], al
lea eax, [esp + 0x210]
push eax
push ebx
push edi
mov byte [edx + 3], 0xff
call fcn.00402040
movsx eax, word [0xc27648]
add esp, 0x14
movsx edx, word [0xc2764a]
mov dword [esp + 0x20], eax
mov dword [esp + 0x10], edx
cmp eax, edi
jl 0x483d51
mov ecx, dword [esp + 0xc]
lea eax, [ecx + edi]
cmp dword [esp + 0x20], eax
jg 0x483d51
cmp edx, ebx
jl 0x483d51
mov edx, dword [esp + 0x18]
lea eax, [edx + ebx]
cmp dword [esp + 0x10], eax
jg 0x483d51
mov eax, dword [esi + 8]
push edx
push ecx
push ebx
movzx eax, word [eax + 0x29]
push edi
push eax
call fcn.0048a1d0
add esp, 0x14
movsx eax, word [esi + 0xe]
push 0xffff0000
sub esp, 0x10
movd xmm0, eax
movsx eax, word [esi + 0xc]
cvtdq2ps xmm0, xmm0
mov dword [esp + 0xc], 0x41600000
mov dword [esp + 8], 0x41600000
movss dword [esp + 4], xmm0
movd xmm0, eax
cvtdq2ps xmm0, xmm0
movss dword [esp], xmm0
call fcn.0045b1e0
add esp, 0x14
jmp case.0x482ed3.2
mov eax, dword [esi + 8]
cmp byte [eax + 0x10], 0
je 0x483da8
push dword [0x5c3af4]
jmp 0x483dae
push dword [0x5c3ad0]
push 0x570388
call fcn.0045fc60
add esp, 8
lea eax, [esp + 0x208]
push str.EFFECT
push eax
call fcn.00446420
lea eax, [esp + 0x210]
push eax
call fcn.004c1b50
mov ebx, eax
push 0x41
mov dword [esp + 0x1c], ebx
call fcn.00402e60
movsx edi, word [esi + 0xc]
add esp, 8
mov dword [esp + 0x20], eax
mov eax, ebx
movsx ebx, word [esi + 0xe]
cdq
sub ebx, 0x14
sub eax, edx
mov dword [esp + 0x24], ebx
sar eax, 1
mov edx, esp
sub edi, eax
mov al, byte [0x59f6bc]
movzx ecx, al
mov dword [esp + 0x1c], edi
mov byte [edx + 4], al
mov al, byte [ecx*4 + 0xc76b98]
mov byte [edx + 2], al
mov al, byte [ecx*4 + 0xc76b99]
mov byte [edx + 1], al
mov al, byte [ecx*4 + 0xc76b9a]
mov byte [edx], al
lea eax, [esp + 0x210]
push eax
push ebx
push edi
mov byte [edx + 3], 0xff
call fcn.00402040
movsx eax, word [0xc27648]
add esp, 0x14
movsx edx, word [0xc2764a]
mov dword [esp + 0x20], eax
mov dword [esp + 0x10], edx
cmp eax, edi
jl 0x483e96
mov ecx, dword [esp + 0xc]
lea eax, [ecx + edi]
cmp dword [esp + 0x20], eax
jg 0x483e96
cmp edx, ebx
jl 0x483e96
mov edx, dword [esp + 0x18]
lea eax, [edx + ebx]
cmp dword [esp + 0x10], eax
jg 0x483e96
mov eax, dword [esi + 8]
push edx
push ecx
push ebx
movzx eax, word [eax + 0x29]
push edi
push eax
call fcn.0048a1d0
add esp, 0x14
movsx eax, word [esi + 0xe]
push 0xffff0000
sub esp, 0x10
movd xmm0, eax
movsx eax, word [esi + 0xc]
cvtdq2ps xmm0, xmm0
mov dword [esp + 0xc], 0x41600000
mov dword [esp + 8], 0x41600000
movss dword [esp + 4], xmm0
movd xmm0, eax
cvtdq2ps xmm0, xmm0
movss dword [esp], xmm0
call fcn.0045b1e0
add esp, 0x14
jmp case.0x482ed3.2
mov eax, dword [esi + 8]
movsx edi, word [esi + 0xc]
movsx ebx, word [esi + 0xe]
sub ebx, 0x14
movsx ecx, word [eax + 0x43]
mov eax, dword [0x5c3ab8]
mov dword [esp + 0x1c], ebx
movzx edx, word [eax + ecx*8 + 4]
movzx eax, word [eax + ecx*8 + 6]
mov dword [esp + 0x18], eax
mov eax, edx
shr eax, 1
sub edi, eax
mov dword [esp + 0xc], edx
mov eax, dword [esi + 8]
mov dword [esp + 0x14], edi
cmp byte [eax + 0x10], 0
je 0x483f26
or dword [0x8d03d0], 0x40
mov eax, dword [esi + 8]
movsx ecx, word [eax + 0x43]
mov eax, dword [0x5c3ab8]
lea eax, [eax + ecx*8]
push eax
push ebx
push edi
call fcn.0045fca0
movsx eax, word [0xc27648]
add esp, 0xc
and dword [0x8d03d0], 0xffffffbf
movsx edx, word [0xc2764a]
mov dword [esp + 0x20], eax
mov dword [esp + 0x10], edx
cmp eax, edi
jl 0x483f90
mov ecx, dword [esp + 0xc]
lea eax, [ecx + edi]
cmp dword [esp + 0x20], eax
jg 0x483f90
cmp edx, ebx
jl 0x483f90
mov edx, dword [esp + 0x18]
lea eax, [edx + ebx]
cmp dword [esp + 0x10], eax
jg 0x483f90
mov eax, dword [esi + 8]
push edx
push ecx
push ebx
movzx eax, word [eax + 0x29]
push edi
push eax
call fcn.0048a1d0
add esp, 0x14
movsx eax, word [esi + 0xe]
push 0xffff0000
sub esp, 0x10
movd xmm0, eax
movsx eax, word [esi + 0xc]
cvtdq2ps xmm0, xmm0
mov dword [esp + 0xc], 0x41600000
mov dword [esp + 8], 0x41600000
movss dword [esp + 4], xmm0
movd xmm0, eax
cvtdq2ps xmm0, xmm0
movss dword [esp], xmm0
call fcn.0045b1e0
add esp, 0x14
jmp case.0x482ed3.2
push 0xfff800ff
jmp 0x483bc3
mov eax, dword [esi + 8]
cmp byte [eax + 0x10], 0
je 0x483ff1
push dword [0x5c3af4]
jmp 0x483ff7
push dword [0x5c3ad0]
push 0x570388
call fcn.0045fc60
add esp, 8
lea eax, [esp + 0x208]
push 0x562ff8
push eax
call fcn.00446420
lea eax, [esp + 0x210]
push eax
call fcn.004c1b50
mov ebx, eax
push 0x41
mov dword [esp + 0x1c], ebx
call fcn.00402e60
mov dword [esp + 0x28], eax
mov eax, ebx
cdq
sub eax, edx
add esp, 8
jmp 0x483b1b
mov eax, dword [esi + 8]
cmp byte [eax + 0x10], 0
je 0x484052
push dword [0x5c3af4]
jmp 0x484058
push dword [0x5c3ad0]
push 0x570388
call fcn.0045fc60
add esp, 8
lea eax, [esp + 0x208]
push str.SHOT
push eax
call fcn.00446420
lea eax, [esp + 0x210]
push eax
call fcn.004c1b50
mov ebx, eax
push 0x41
mov dword [esp + 0x1c], ebx
call fcn.00402e60
mov dword [esp + 0x28], eax
mov eax, ebx
cdq
sub eax, edx
add esp, 8
jmp 0x483b1b
mov eax, dword [esi + 8]
cmp byte [eax + 0x10], 0
je 0x4840b3
push dword [0x5c3af4]
jmp 0x4840b9
push dword [0x5c3ad0]
push 0x570388
call fcn.0045fc60
add esp, 8
lea eax, [esp + 0x208]
push str.SPELL
push eax
call fcn.00446420
lea eax, [esp + 0x210]
push eax
call fcn.004c1b50
mov ebx, eax
push 0x41
mov dword [esp + 0x1c], ebx
call fcn.00402e60
mov dword [esp + 0x28], eax
mov eax, ebx
cdq
sub eax, edx
add esp, 8
jmp 0x483b1b
push dword [0x5c3afc]
push 0x570388
call fcn.0045fc60
mov dl, byte [esi + 8]
xor cl, cl
add esp, 8
cmp byte [0xc2769a], cl
je 0x48412e
mov al, dl
mov cl, dl
shl al, 3
add cl, al
add cl, cl
movsx ebx, word [esi + 0xe]
movsx edi, word [esi + 0xc]
movzx eax, cl
sub ebx, eax
mov dword [esp + 0x20], eax
sub ebx, 0xc
movzx eax, dl
mov dword [esp + 0x14], edi
mov dword [esp + 0x1c], ebx
cmp eax, 3
ja case.default.0x484152
jmp dword [eax*4 + 0x485a34]
mov dword [esp + 0x2c], 0xff00ff00
mov eax, str.SHROUD
jmp 0x48419a
mov eax, str.NO_ACCESS
jmp 0x484192
mov dword [esp + 0x2c], 0xffffffff
mov eax, str.SHALLOW_LAVA
jmp 0x48419a
mov dword [esp + 0x2c], 0xff00ffff
mov eax, str.WAVY
jmp 0x48419a
mov eax, 0x563064
mov dword [esp + 0x2c], 0xffff0000
push eax
lea eax, [esp + 0x20c]
push eax
call fcn.00446420
add esp, 8
movd xmm0, ebx
cvtdq2ps xmm0, xmm0
push dword [esp + 0x2c]
sub esp, 0x10
mov dword [esp + 0xc], 0x41600000
mov dword [esp + 8], 0x41600000
movss dword [esp + 4], xmm0
movd xmm0, edi
cvtdq2ps xmm0, xmm0
movss dword [esp], xmm0
call fcn.0045b1e0
movsx edx, word [0xc27648]
add esp, 0x14
movsx ecx, word [0xc2764a]
cmp edx, edi
jl case.0x482ed3.2
mov eax, dword [esp + 0xc]
add eax, edi
cmp edx, eax
jg case.0x482ed3.2
cmp ecx, ebx
jl case.0x482ed3.2
mov eax, dword [esp + 0x18]
add eax, ebx
cmp ecx, eax
jg case.0x482ed3.2
movsx ebx, word [0xc27646]
lea eax, [esp + 0x208]
movsx edi, word [0xc27644]
sub ebx, dword [esp + 0x20]
add edi, 0x14
sub ebx, 0x14
mov dword [esp + 0x14], edi
push eax
mov dword [esp + 0x20], ebx
call fcn.004c1b50
push 0x41
mov dword [esp + 0x14], eax
call fcn.00402e60
mov edx, dword [esp + 0x34]
mov ecx, eax
lea eax, [edi - 5]
mov dword [esp + 0x20], ecx
mov dword [esp + 0x158], eax
mov eax, dword [esp + 0x14]
add eax, 0xa
mov byte [esp + 0x124], dl
push dword [esp + 0x124]
add eax, edi
mov dword [esp + 0x160], ebx
mov dword [esp + 0x164], eax
lea eax, [ecx + ebx]
mov ecx, edx
mov dword [esp + 0x168], eax
shr ecx, 8
mov eax, edx
mov byte [esp + 0x12c], cl
push dword [esp + 0x12c]
shr eax, 0x10
mov byte [esp + 0x128], al
push dword [esp + 0x128]
mov byte [esp + 0xc1], al
push 0xc76b98
mov byte [esp + 0xc4], cl
mov byte [esp + 0xc3], dl
mov byte [esp + 0xc6], 0xff
call fcn.00401d50
mov ecx, dword [esp + 0xc3]
add esp, 0x10
mov edx, esp
mov dword [edx], ecx
mov byte [edx + 4], al
lea eax, [esp + 0x158]
push eax
call fcn.0045f850
movzx eax, byte [0x59f6bc]
add esp, 4
mov ecx, esp
push eax
call fcn.0044bfa0
lea eax, [esp + 0x210]
push eax
push ebx
push edi
call fcn.00402040
add esp, 0x14
jmp case.0x482ed3.2
mov eax, dword [esi + 8]
cmp byte [eax + 0x10], 0
je 0x48433d
push dword [0x5c3af4]
jmp 0x484343
push dword [0x5c3ad0]
push 0x570388
call fcn.0045fc60
mov eax, dword [esi + 8]
add esp, 8
mov ecx, str.LB_END
cmp byte [eax + 0x31], 7
mov eax, str.LB_START
cmove ecx, eax
lea eax, [esp + 0x208]
push ecx
push eax
call fcn.00446420
lea eax, [esp + 0x210]
push eax
call fcn.004c1b50
mov ebx, eax
push 0x41
mov dword [esp + 0x1c], ebx
call fcn.00402e60
movsx edi, word [esi + 0xc]
add esp, 8
mov dword [esp + 0x20], eax
mov eax, ebx
movsx ebx, word [esi + 0xe]
cdq
sub ebx, 0x14
sub eax, edx
mov dword [esp + 0x24], ebx
sar eax, 1
mov edx, esp
sub edi, eax
mov al, byte [0x59f6bc]
movzx ecx, al
mov dword [esp + 0x1c], edi
mov byte [edx + 4], al
mov al, byte [ecx*4 + 0xc76b98]
mov byte [edx + 2], al
mov al, byte [ecx*4 + 0xc76b99]
mov byte [edx + 1], al
mov al, byte [ecx*4 + 0xc76b9a]
mov byte [edx], al
lea eax, [esp + 0x210]
push eax
push ebx
push edi
mov byte [edx + 3], 0xff
call fcn.00402040
movsx eax, word [0xc27648]
add esp, 0x14
movsx edx, word [0xc2764a]
mov dword [esp + 0x20], eax
mov dword [esp + 0x10], edx
cmp eax, edi
jl 0x48443b
mov ecx, dword [esp + 0xc]
lea eax, [ecx + edi]
cmp dword [esp + 0x20], eax
jg 0x48443b
cmp edx, ebx
jl 0x48443b
mov edx, dword [esp + 0x18]
lea eax, [edx + ebx]
cmp dword [esp + 0x10], eax
jg 0x48443b
mov eax, dword [esi + 8]
push edx
push ecx
push ebx
movzx eax, word [eax + 0x29]
push edi
push eax
call fcn.0048a1d0
add esp, 0x14
movsx eax, word [esi + 0xe]
push 0xffff0000
sub esp, 0x10
movd xmm0, eax
movsx eax, word [esi + 0xc]
cvtdq2ps xmm0, xmm0
mov dword [esp + 0xc], 0x41600000
mov dword [esp + 8], 0x41600000
movss dword [esp + 4], xmm0
movd xmm0, eax
cvtdq2ps xmm0, xmm0
movss dword [esp], xmm0
call fcn.0045b1e0
mov eax, dword [esi + 8]
add esp, 0x14
cmp byte [eax + 0x31], 7
jne case.0x482ed3.2
cmp dword [eax + 0x3a], 0
je case.0x482ed3.2
movsx edx, word [eax + 0x3e]
sub esp, 8
movsx edi, word [eax + 0x40]
mov ecx, esp
sub edi, 0x1e
push edi
mov byte [ecx + 4], 0xff
mov al, byte [0xc76f94]
mov byte [ecx + 2], al
mov al, byte [0xc76f95]
mov byte [ecx + 1], al
mov al, byte [0xc76f96]
push edx
mov edx, dword [esp + 0x24]
mov byte [ecx], al
lea eax, [ebx - 0xa]
push eax
push edx
mov byte [ecx + 3], 0xff
call fcn.0045f420
add esp, 0x18
jmp case.0x482ed3.2
mov ebx, dword [esi + 8]
mov dword [esp + 0x30], 0
mov dword [esp + 0x2c], ebx
movzx eax, word [ebx + 0x29]
mov dword [esp + 0x38], eax
movzx eax, byte [ebx + 0x4a]
imul eax, eax, 0xb
add eax, 0x593c30
mov dword [esp + 0x20], eax
mov eax, edi
sub eax, 1
je 0x484868
sub eax, 0xc
je 0x484527
sub eax, 0xd
je 0x484868
mov ebx, dword [esp + 0x1c]
mov edi, dword [esp + 0x14]
jmp 0x484ac8
test dword [ebx + 0x15], 0x400000
je 0x48453f
mov edx, 0x60
mov dword [esp + 0x34], 0
jmp 0x48454b
movzx eax, byte [ebx + 0x49]
movsx edx, word [ebx + 0x43]
mov dword [esp + 0x34], eax
movzx eax, word [ebx + 0x45]
movsx ecx, word [ebx + 0x2b]
mov dword [esp + 0x24], eax
mov eax, dword [0xaf4ef8]
movsx eax, word [eax + 0x32]
sub eax, ecx
sub eax, 0x380
sar eax, 8
and eax, 7
add eax, edx
test byte [ebx + 0x15], 0x20
mov dword [esp + 0x30], eax
je 0x48458a
push ebx
call fcn.004afa80
mov ecx, eax
add esp, 4
mov eax, dword [esp + 0x30]
jmp 0x48458e
movsx ecx, byte [ebx + 0x36]
mov dl, byte [ebx + 0x31]
mov dh, byte [ebx + 0x32]
mov byte [esp + 0x2b], 0
cmp dl, 1
jne 0x4845a9
cmp dh, 7
jne 0x4845d0
mov byte [esp + 0x2b], dl
jmp 0x4845ca
cmp dl, 0xa
jne 0x4845d0
cmp dh, 0xc
jne 0x4845d0
cmp byte [ebx + 0x84], 7
jne 0x4845d0
cmp byte [ebx + 0x88], 0
mov byte [esp + 0x2b], 1
jne 0x4845d0
add eax, ecx
mov dword [esp + 0x30], eax
mov edi, dword [0x6ba2c0]
lea eax, [eax + eax*2]
mov ecx, dword [esp + 0x24]
cmp byte [edi + eax*2], 0
setne dl
mov al, dl
or al, 2
and ecx, 0xa000
movzx ebx, al
movzx eax, dl
mov edx, dword [esp + 0x24]
cmove ebx, eax
mov al, bl
or al, 4
and edx, 0x4000
movzx ecx, al
movzx eax, bl
cmove ecx, eax
movsx ebx, word [esi + 0xe]
cmp byte [esp + 0x2b], 0
mov dword [esp + 0x24], ecx
mov ecx, dword [esp + 0x30]
lea eax, [ecx + ecx*2]
mov ecx, dword [esp + 0x34]
mov eax, dword [edi + eax*2 + 2]
movsx edi, word [esi + 0xc]
movzx eax, word [eax + ecx*2]
mov ecx, dword [0x6ba2c4]
lea edx, [eax + eax*2]
movzx eax, byte [ecx + edx*2 + 2]
mov dword [esp + 0x14], eax
movzx eax, byte [ecx + edx*2 + 3]
mov dword [esp + 0x1c], eax
je 0x484667
mov eax, dword [esp + 0x4c]
lea ecx, [esp + 0x1c]
push ecx
lea ecx, [esp + 0x18]
neg eax
push ecx
mov dword [0x5cea39], eax
push eax
jmp 0x484688
test dword [0x5cf418], 0x380
je 0x484697
mov ecx, dword [esp + 0x4c]
lea eax, [esp + 0x1c]
push eax
lea eax, [esp + 0x18]
mov dword [0x5cea39], ecx
push eax
push ecx
mov byte [0x5cfe6a], 1
call fcn.004882c0
add esp, 0xc
test byte [0xc275c4], 8
mov ecx, dword [esp + 0x2c]
je 0x4846fb
test dword [ecx + 0x19], 0x1000
jne 0x4846fb
test dword [ecx + 0x15], 0x800
jne 0x4846fb
cmp byte [ecx + 0x31], 1
jne 0x4846fb
mov al, byte [ecx + 0x36]
cmp al, byte [0x5cf497]
jne 0x4846fb
mov ax, word [ecx + 0x7a]
cmp ax, word [ecx + 0x78]
jge 0x4846fb
mov eax, dword [esp + 0x1c]
mov ecx, ebx
lea eax, [eax + eax*2]
shl eax, 3
cdq
and edx, 0x1f
add eax, edx
sar eax, 5
sub ecx, eax
mov eax, dword [esp + 0x2c]
push ecx
push edi
push eax
call fcn.0044d000
mov ecx, dword [esp + 0x38]
add esp, 0xc
mov al, byte [esp + 0x24]
or al, 8
cmp byte [ecx + 0x10], 0
movzx edx, al
mov eax, dword [esp + 0x24]
movzx eax, al
cmove edx, eax
xor eax, eax
mov dword [esp + 0x20], edx
movzx edx, byte [ecx + 0x32]
cmp edx, 0xb
ja case.0x484725.8
jmp dword [edx*4 + 0x485a44]
xor eax, eax
jmp case.0x484725.8
movsx eax, byte [ecx + 0x36]
and eax, 0x80000007
jns 0x484743
dec eax
or eax, 0xfffffff8
inc eax
inc eax
jmp case.0x484725.8
movsx eax, byte [ecx + 0x36]
and eax, 0x80000007
jns 0x484759
dec eax
or eax, 0xfffffff8
inc eax
add eax, 9
jmp case.0x484725.8
movsx eax, byte [ecx + 0x36]
and eax, 0x80000007
jns 0x484771
dec eax
or eax, 0xfffffff8
inc eax
add eax, 0x11
jmp case.0x484725.8
movsx eax, byte [ecx + 0x36]
and eax, 0x80000007
jns 0x484789
dec eax
or eax, 0xfffffff8
inc eax
add eax, 0x19
jmp case.0x484725.8
movsx eax, byte [ecx + 0x36]
and eax, 0x80000007
jns 0x48479e
dec eax
or eax, 0xfffffff8
inc eax
add eax, 0x21
jmp case.0x484725.8
movsx eax, byte [ecx + 0x36]
and eax, 0x80000007
jns 0x4847b3
dec eax
or eax, 0xfffffff8
inc eax
add eax, 0x29
jmp case.0x484725.8
movsx eax, byte [ecx + 0x36]
and eax, 0x80000003
jns 0x4847c8
dec eax
or eax, 0xfffffffc
inc eax
add eax, 0x31
jmp case.0x484725.8
movsx eax, byte [ecx + 0x36]
and eax, 0x80000003
jns 0x4847dd
dec eax
or eax, 0xfffffffc
inc eax
add eax, 0x35
jmp case.0x484725.8
movsx eax, byte [ecx + 0x36]
and eax, 0x80000003
jns 0x4847f2
dec eax
or eax, 0xfffffffc
inc eax
add eax, 0x39
jmp case.0x484725.8
movsx eax, byte [ecx + 0x36]
and eax, 0x80000003
jns 0x484807
dec eax
or eax, 0xfffffffc
inc eax
add eax, 0x3d
movzx ecx, ax
mov eax, dword [0x5c3ac0]
movzx edx, word [eax + ecx*8 + 4]
lea ecx, [eax + ecx*8]
movzx eax, word [ecx + 6]
mov dword [esp + 0x18], eax
mov eax, dword [esp + 0x20]
sub ebx, dword [esp + 0x18]
movzx eax, al
and eax, 8
mov dword [esp + 0xc], edx
shl eax, 3
mov dword [0x8d03d0], eax
mov eax, edx
push ecx
shr eax, 1
sub edi, eax
mov dword [esp + 0x20], ebx
push ebx
push edi
mov dword [esp + 0x20], edi
call fcn.0045fca0
mov ecx, dword [esp + 0x18]
add esp, 0xc
mov dword [0x8d03d0], 0
jmp 0x484ac4
mov eax, dword [esp + 0x20]
cmp byte [eax + 1], 1
jle 0x484886
movzx ecx, word [ebx + 0x43]
movzx edx, word [ebx + 0x47]
movsx eax, cx
shr edx, 2
add edx, eax
mov eax, ecx
jmp 0x48488d
movzx eax, word [ebx + 0x43]
movsx edx, ax
mov dword [esp + 0x24], eax
mov eax, dword [0x5c3ab8]
movzx ecx, word [eax + edx*8 + 4]
lea eax, [eax + edx*8]
movzx ebx, word [eax + 6]
mov dword [esp + 0x10], eax
mov eax, dword [esp + 0x24]
movzx eax, ax
mov dword [esp + 0x34], edx
mov dword [esp + 0xc], ecx
mov dword [esp + 0x14], ecx
mov dword [esp + 0x18], ebx
mov dword [esp + 0x1c], ebx
mov dword [esp + 0x20], eax
sub edi, 1
je 0x484969
sub edi, 0x19
jne 0x4849a4
mov eax, dword [esp + 0x4c]
shl ecx, 4
shl ebx, 4
mov dword [esp + 0x30], 1
mov dword [esp + 0xc], ecx
cmp eax, 0x690
jge 0x48494a
cmp eax, 0x540
jle 0x48493e
mov edi, 0x690
sub edi, eax
mov eax, edi
imul edi, ebx
imul eax, ecx
imul ecx, eax, 0x32
mov eax, 0x30c30c31
imul ecx
imul ecx, edi, 0x32
sar edx, 6
mov eax, edx
shr eax, 0x1f
add eax, edx
add dword [esp + 0xc], eax
mov eax, 0x30c30c31
imul ecx
mov ecx, dword [esp + 0xc]
sar edx, 6
mov eax, edx
shr eax, 0x1f
add eax, edx
add ebx, eax
jmp 0x48494a
imul ecx, ecx, 0x150
imul ebx, ebx, 0x150
sar ecx, 4
mov eax, 0xc8
sar ebx, 4
cmp ecx, 0xc8
cmovg ecx, eax
cmp ebx, eax
cmovg ebx, eax
mov dword [esp + 0x18], ebx
jmp 0x4849a0
test dword [0x5cf418], 0x380
je 0x4849a4
mov ecx, dword [esp + 0x4c]
lea eax, [esp + 0x1c]
push eax
lea eax, [esp + 0x18]
mov dword [esp + 0x34], 1
push eax
push ecx
call fcn.004882c0
mov eax, dword [esp + 0x28]
add esp, 0xc
mov ecx, dword [esp + 0x14]
mov dword [esp + 0x18], eax
mov dword [esp + 0xc], ecx
movsx edi, word [esi + 0xc]
mov eax, ecx
movsx ebx, word [esi + 0xe]
cdq
sub eax, edx
mov edx, 0x518
sar eax, 1
sub edi, eax
mov eax, dword [esp + 0x18]
sub ebx, eax
mov dword [esp + 0x14], edi
mov dword [esp + 0x1c], ebx
cmp word [esp + 0x20], dx
jne 0x4849ec
movsx ebx, word [esi + 0xe]
lea eax, [eax + eax*4]
shl eax, 2
cdq
and edx, 0x1f
add eax, edx
sar eax, 5
sub ebx, eax
mov eax, dword [esp + 0x18]
mov dword [esp + 0x1c], ebx
mov edx, dword [esp + 0x2c]
mov esi, 0x4000
test word [edx + 0x45], si
mov esi, dword [esp + 0x48]
je 0x484a06
or dword [0x8d03d0], 8
mov dl, byte [edx + 0x4c]
cmp dl, 0xf1
jl 0x484a92
cmp dl, 0xf
jg 0x484abd
je 0x484a2a
movsx eax, dl
shl eax, 0xc
add eax, 0x5b36c8
jmp 0x484a2f
mov eax, 0x5b36c8
push eax
call fcn.0045fbf0
or dword [0x8d03d0], 8
add esp, 4
cmp dword [esp + 0x30], 0
mov ecx, dword [esp + 0x34]
je 0x484a69
mov eax, dword [esp + 0x18]
push eax
mov eax, dword [esp + 0x10]
push eax
mov eax, dword [0x5c3ab8]
lea eax, [eax + ecx*8]
push eax
push ebx
push edi
call fcn.0045fb00
add esp, 0x14
jmp 0x484a7c
mov eax, dword [0x5c3ab8]
lea eax, [eax + ecx*8]
push eax
push ebx
push edi
call fcn.0045fca0
add esp, 0xc
push 0x5a36c8
call fcn.0045fbf0
add esp, 4
and dword [0x8d03d0], 0xfffffff7
jmp 0x484ab9
cmp dword [esp + 0x30], 0
je 0x484aab
push eax
push ecx
push dword [esp + 0x18]
push ebx
push edi
call fcn.0045fb00
add esp, 0x14
jmp 0x484ab9
push dword [esp + 0x10]
push ebx
push edi
call fcn.0045fca0
add esp, 0xc
mov ecx, dword [esp + 0xc]
and dword [0x8d03d0], 0xfffffff7
mov edx, dword [esp + 0x18]
test dword [0x5cf410], 0x400000
jne 0x484b45
mov eax, dword [esp + 0x2c]
test byte [eax + 0x45], 0x80
je case.0x482ed3.2
movsx eax, word [0xc27648]
mov dword [esp + 0x20], eax
movsx eax, word [0xc2764a]
mov dword [esp + 0x10], eax
movsx eax, word [0xc27648]
cmp eax, edi
jl case.0x482ed3.2
lea eax, [ecx + edi]
cmp dword [esp + 0x20], eax
jg case.0x482ed3.2
movsx eax, word [0xc2764a]
cmp eax, ebx
jl case.0x482ed3.2
lea eax, [edx + ebx]
cmp dword [esp + 0x10], eax
jg case.0x482ed3.2
push edx
push ecx
push ebx
push edi
push dword [esp + 0x48]
call fcn.0048a1d0
add esp, 0x14
jmp case.0x482ed3.2
movzx eax, word [0xc2766a]
cmp dword [esp + 0x38], eax
jne case.0x482ed3.2
or dword [0xc275c4], 0x100
push edx
push ecx
push ebx
push edi
push dword [esp + 0x48]
call fcn.0048a1d0
add esp, 0x14
jmp case.0x482ed3.2
mov ecx, dword [esi + 8]
mov dword [esp + 0x24], ecx
movzx eax, word [ecx + 0x29]
mov dword [esp + 0x38], eax
movzx eax, byte [ecx + 0x4a]
imul eax, eax, 0xb
cmp byte [eax + 0x593c31], 1
jle 0x484ba3
movzx edx, word [ecx + 0x47]
movsx eax, word [ecx + 0x43]
shr edx, 2
add edx, eax
jmp 0x484ba7
movsx edx, word [ecx + 0x43]
mov eax, dword [0x5c3ab8]
movzx ecx, word [eax + edx*8 + 4]
mov dword [esp + 0x10], edx
lea edx, [eax + edx*8]
movsx eax, word [esi + 0xc]
mov dword [esp + 0x20], edx
movzx edx, word [edx + 6]
imul ecx, eax
movsx eax, word [esi + 0xe]
imul edx, eax
sar ecx, 8
mov dword [esp + 0xc], ecx
sar edx, 8
test dword [0x5cf418], 0x380
mov dword [esp + 0x14], ecx
mov dword [esp + 0x18], edx
mov dword [esp + 0x1c], edx
je 0x484c13
lea eax, [esp + 0x1c]
push eax
lea eax, [esp + 0x18]
push eax
push ebx
call fcn.004882c0
mov ecx, dword [esp + 0x20]
add esp, 0xc
mov eax, dword [esp + 0x1c]
mov dword [esp + 0xc], ecx
mov dword [esp + 0x18], eax
movsx edi, word [esi + 0x10]
mov eax, ecx
movsx ebx, word [esi + 0x12]
mov esi, 0x4000
cdq
sub eax, edx
mov edx, dword [esp + 0x24]
sar eax, 1
sub edi, eax
mov eax, dword [esp + 0x18]
sub ebx, eax
mov dword [esp + 0x14], edi
test word [edx + 0x45], si
mov esi, dword [esp + 0x48]
mov dword [esp + 0x1c], ebx
je 0x484c4c
or dword [0x8d03d0], 8
mov dl, byte [edx + 0x4c]
cmp dl, 0xf1
jl 0x484ca5
cmp dl, 0xf
je 0x484c66
movsx eax, dl
shl eax, 0xc
add eax, 0x5b36c8
jmp 0x484c6b
mov eax, 0x5b36c8
push eax
call fcn.0045fbf0
mov eax, dword [esp + 0x1c]
mov ecx, dword [esp + 0x14]
or dword [0x8d03d0], 8
push eax
mov eax, dword [esp + 0x14]
push eax
mov eax, dword [0x5c3ab8]
lea eax, [eax + ecx*8]
push eax
push ebx
push edi
call fcn.0045fb00
push 0x5a36c8
call fcn.0045fbf0
add esp, 0x1c
jmp 0x484cb5
push eax
push ecx
push dword [esp + 0x28]
push ebx
push edi
call fcn.0045fb00
add esp, 0x14
and dword [0x8d03d0], 0xfffffff7
test dword [0x5cf410], 0x400000
jne 0x484d34
mov eax, dword [esp + 0x24]
test byte [eax + 0x45], 0x80
je case.0x482ed3.2
movsx eax, word [0xc27648]
movsx edx, word [0xc2764a]
mov dword [esp + 0x20], eax
mov dword [esp + 0x10], edx
cmp eax, edi
jl case.0x482ed3.2
mov ecx, dword [esp + 0xc]
lea eax, [ecx + edi]
cmp dword [esp + 0x20], eax
jg case.0x482ed3.2
cmp edx, ebx
jl case.0x482ed3.2
mov edx, dword [esp + 0x18]
lea eax, [edx + ebx]
cmp dword [esp + 0x10], eax
jg case.0x482ed3.2
push edx
push ecx
mov ecx, dword [esp + 0x40]
push ebx
push edi
push ecx
call fcn.0048a1d0
add esp, 0x14
jmp case.0x482ed3.2
movzx eax, word [0xc2766a]
mov ecx, dword [esp + 0x38]
cmp ecx, eax
jne case.0x482ed3.2
push dword [esp + 0x18]
or dword [0xc275c4], 0x100
push dword [esp + 0x10]
push ebx
push edi
push ecx
call fcn.0048a1d0
add esp, 0x14
jmp case.0x482ed3.2
sub edi, 0xf
je 0x484d92
sub edi, 1
je 0x484d85
sub edi, 9
jne 0x484d9d
mov dword [esp + 0xa4], 0x46
jmp 0x484d9d
mov dword [esp + 0xa4], 0x47
jmp 0x484d9d
mov dword [esp + 0xa4], 0x16
test dword [0x5cf418], 0x380
mov eax, dword [0x5c3ab8]
mov ecx, dword [esp + 0xa4]
movzx edx, word [eax + ecx*8 + 6]
lea edi, [eax + ecx*8]
movzx eax, word [edi + 4]
mov dword [esp + 0x20], edi
mov dword [esp + 0xc], eax
mov dword [esp + 0x14], eax
mov dword [esp + 0x18], edx
mov dword [esp + 0x1c], edx
je 0x484e3c
lea eax, [esp + 0x1c]
push eax
lea eax, [esp + 0x18]
push eax
push ebx
call fcn.004882c0
mov edi, dword [esp + 0x20]
mov eax, edi
movsx ecx, word [esi + 8]
movsx ebx, word [esi + 0xa]
or dword [0x8d03d0], 8
cdq
sub eax, edx
mov dword [esp + 0x18], edi
sar eax, 1
sub ecx, eax
mov eax, dword [esp + 0x28]
push eax
push edi
push dword [esp + 0x34]
sub ebx, eax
mov dword [esp + 0x2c], ecx
add ebx, 2
mov dword [esp + 0x30], eax
push ebx
push ecx
mov dword [esp + 0x3c], ebx
call fcn.0045fb00
mov eax, dword [0x8d03d0]
add esp, 0x20
and eax, 0xfffffff7
mov dword [0x8d03d0], eax
jmp case.0x482ed3.2
movsx ebx, word [esi + 0xa]
movsx ecx, word [esi + 8]
sub ebx, edx
or dword [0x8d03d0], 8
add ebx, 2
shr eax, 1
push edi
sub ecx, eax
mov dword [esp + 0x20], ebx
push ebx
push ecx
mov dword [esp + 0x20], ecx
call fcn.0045fca0
mov eax, dword [0x8d03d0]
add esp, 0xc
and eax, 0xfffffff7
mov dword [0x8d03d0], eax
jmp case.0x482ed3.2
movsx ecx, byte [esi + 0xc]
mov eax, dword [0x5c3ab8]
movsx ebx, word [esi + 0xa]
movsx edx, word [esi + 8]
mov dword [esp + 0x14], edx
movzx eax, word [eax + ecx*8 + 0x5e]
sub ebx, eax
mov dword [esp + 0x1c], ebx
jmp case.0x482ed3.2
mov eax, dword [0x5c3ab8]
movsx ecx, byte [esi + 0xc]
add eax, 0x58
movsx ebx, word [esi + 0xa]
movsx edx, word [esi + 8]
mov dword [esp + 0x14], edx
lea ecx, [eax + ecx*8]
movzx eax, word [ecx + 6]
sub ebx, eax
push ecx
push ebx
push edx
mov dword [esp + 0x28], ebx
call fcn.0045fca0
add esp, 0xc
jmp case.0x482ed3.2
movsx eax, word [esi + 0xc]
sub esp, 8
movsx ecx, word [esi + 0xe]
sub eax, 5
mov dword [esp + 0x138], eax
mov edx, esp
mov dword [esp + 0x1c], eax
add eax, 0xa
mov dword [esp + 0x140], eax
mov eax, dword [esi + 8]
lea ebx, [ecx - 0xa]
mov dword [esp + 0x144], ecx
mov dword [esp + 0x13c], ebx
mov dword [esp + 0x24], ebx
movzx eax, byte [eax + 0x32]
mov al, byte [eax + 0x5cf49a]
movzx ecx, al
mov byte [edx + 4], al
mov al, byte [ecx*4 + 0xc76b98]
mov byte [edx + 2], al
mov al, byte [ecx*4 + 0xc76b99]
mov byte [edx + 1], al
mov al, byte [ecx*4 + 0xc76b9a]
mov byte [edx], al
lea eax, [esp + 0x138]
push eax
mov byte [edx + 3], 0xff
call fcn.0045f810
add esp, 0xc
jmp case.0x482ed3.2
mov eax, dword [esi + 8]
mov cl, byte [0x5cf42c]
movsx ebx, word [esi + 0xe]
movsx edx, word [esi + 0xc]
sub ebx, 0xa
movsx edi, word [eax + 0x7c]
sub edx, 5
movzx eax, byte [eax + 0x78]
push 0
push eax
sar edi, cl
push edi
push ebx
push edx
mov dword [esp + 0x28], edx
mov dword [esp + 0x30], ebx
mov dword [esp + 0x20], edi
call fcn.0044d650
add esp, 0x14
jmp case.0x482ed3.2
mov eax, dword [esi + 8]
xor edi, edi
movsx ecx, word [esi + 0xc]
movsx ebx, word [esi + 0xe]
sub ecx, 9
mov dword [esp + 0x14], ecx
mov dl, byte [eax + 0x86]
mov eax, ecx
or dword [0x8d03d0], 8
add ecx, 0x12
mov dword [esp + 0xc], 0x12
mov dword [esp + 0x1c], ebx
mov byte [esp + 0x3f], dl
movzx esi, dl
mov dword [esp + 0x10], eax
mov dword [esp + 0x24], ecx
nop word [eax + eax]
mov dword [esp + 0x140], eax
sub esp, 8
mov dword [esp + 0x150], ecx
lea eax, [ebx + edi]
mov ecx, esp
mov dword [esp + 0x154], eax
mov dword [esp + 0x14c], 0
mov byte [ecx + 4], dl
mov al, byte [esi*4 + 0xc76b98]
mov byte [ecx + 2], al
mov al, byte [esi*4 + 0xc76b99]
mov byte [ecx + 1], al
mov al, byte [esi*4 + 0xc76b9a]
mov byte [ecx], al
lea eax, [esp + 0x148]
push eax
mov byte [ecx + 3], 0xff
call fcn.0045f810
mov eax, dword [esp + 0x1c]
inc edi
mov ecx, dword [esp + 0x30]
add eax, 2
mov dl, byte [esp + 0x4b]
sub ecx, 2
add esp, 0xc
mov dword [esp + 0x10], eax
mov dword [esp + 0x24], ecx
cmp edi, 4
jl 0x484fe0
mov esi, dword [esp + 0x48]
jmp 0x4858f6
movsx eax, word [esi + 0xe]
sub esp, 8
movsx ebx, word [esi + 0xa]
mov edx, esp
movsx edi, word [esi + 8]
mov dword [esp + 0x28], eax
movsx eax, word [esi + 0xc]
push dword [esp + 0x28]
mov dword [esp + 0x1c], eax
mov al, byte [esi + 0x10]
push dword [esp + 0x1c]
movzx ecx, al
mov byte [edx + 4], al
push ebx
push edi
mov al, byte [ecx*4 + 0xc76b98]
mov byte [edx + 2], al
mov al, byte [ecx*4 + 0xc76b99]
mov byte [edx + 1], al
mov al, byte [ecx*4 + 0xc76b9a]
mov byte [edx], al
mov byte [edx + 3], 0xff
call fcn.0045f420
add esp, 0x18
jmp case.0x482ed3.2
movsx eax, word [esi + 0xc]
mov ecx, dword [0x5c3b00]
sub eax, 5
movsx ebx, word [esi + 0xe]
mov dword [esp + 0x14], eax
sub ebx, 0xa
mov eax, dword [esi + 8]
mov dword [esp + 0x1c], ebx
mov dword [esp + 0xc], 2
movd xmm0, ebx
movzx edi, byte [eax + 0x9a]
cvtdq2ps xmm0, xmm0
movzx edx, byte [ecx + edi*4]
movzx eax, byte [ecx + edi*4 + 1]
or edx, 0xffffff00
shl edx, 8
or edx, eax
movzx eax, byte [ecx + edi*4 + 2]
shl edx, 8
or edx, eax
push edx
sub esp, 0x10
mov dword [esp + 0xc], 0x40e00000
mov dword [esp + 8], 0x40e00000
movss dword [esp + 4], xmm0
movd xmm0, dword [esp + 0x28]
jmp 0x483bef
mov ebx, dword [0x8d03d0]
xor ecx, ecx
cmp dword [0x815420], ecx
mov eax, 0x58a9a0
mov edi, dword [0x58ab04]
push 0x42
cmove eax, ecx
mov dword [0x8d03d0], 8
push eax
push 3
mov dword [0x58ab04], 0xc8
movsx eax, word [esi + 0xe]
push 0xc8ffffff
push eax
movsx eax, word [esi + 0xc]
push eax
movsx eax, word [esi + 0xa]
push eax
movsx eax, word [esi + 8]
push eax
call fcn.0045fd40
movzx eax, word [esi + 0xa]
push 0x64
push 0x80
push eax
movzx eax, word [esi + 8]
push eax
call fcn.00486b70
add esp, 0x30
mov dword [0x8d03d0], ebx
mov dword [0x58ab04], edi
jmp case.0x482ed3.2
cmp byte [0xc2769b], 0
movsx ecx, word [0xc27648]
movsx edx, word [0xc2764a]
mov dword [esp + 0x20], ecx
mov dword [esp + 0x24], edx
je 0x4852fc
movsx eax, word [esi + 0xe]
sub esp, 8
movzx ebx, byte [0x5cf49b]
mov ecx, esp
movsx edx, word [esi + 0xc]
mov edi, ebx
mov dword [esp + 0x50], eax
movsx eax, word [esi + 0x10]
mov dword [esp + 0x3c], eax
movsx eax, word [esi + 0x12]
mov dword [esp + 0x40], eax
mov byte [ecx + 4], bl
mov al, byte [edi*4 + 0xc76b98]
mov byte [ecx + 2], al
mov al, byte [edi*4 + 0xc76b99]
mov byte [ecx + 1], al
mov al, byte [edi*4 + 0xc76b9a]
mov byte [ecx], al
mov eax, dword [esp + 0x50]
push eax
push dword [esp + 0x40]
mov dword [esp + 0x20], edx
push eax
push edx
mov byte [ecx + 3], 0xff
call fcn.0045f420
add esp, 0x10
mov ecx, esp
mov byte [ecx + 4], bl
mov al, byte [edi*4 + 0xc76b98]
mov byte [ecx + 2], al
mov al, byte [edi*4 + 0xc76b99]
mov byte [ecx + 1], al
mov al, byte [edi*4 + 0xc76b9a]
mov byte [ecx], al
mov eax, dword [esp + 0x40]
push eax
push dword [esp + 0x40]
mov byte [ecx + 3], 0xff
push eax
push dword [esp + 0x24]
call fcn.0045f420
add esp, 0x10
mov ecx, esp
push dword [esp + 0x40]
mov byte [ecx + 4], bl
mov al, byte [edi*4 + 0xc76b98]
mov byte [ecx + 2], al
mov al, byte [edi*4 + 0xc76b99]
mov byte [ecx + 1], al
mov al, byte [edi*4 + 0xc76b9a]
mov byte [ecx], al
mov eax, dword [esp + 0x1c]
push eax
push dword [esp + 0x58]
mov byte [ecx + 3], 0xff
push eax
call fcn.0045f420
add esp, 0x10
mov ecx, esp
push dword [esp + 0x40]
mov byte [ecx + 4], bl
mov al, byte [edi*4 + 0xc76b98]
mov byte [ecx + 2], al
mov al, byte [edi*4 + 0xc76b99]
mov byte [ecx + 1], al
mov al, byte [edi*4 + 0xc76b9a]
mov byte [ecx], al
mov eax, dword [esp + 0x40]
push eax
push dword [esp + 0x58]
mov byte [ecx + 3], 0xff
push eax
call fcn.0045f420
mov ecx, dword [esp + 0x38]
add esp, 0x18
mov edx, dword [esp + 0x24]
movzx eax, word [esi + 0xc]
cwde
cmp ecx, eax
jl case.0x482ed3.2
movzx ebx, word [esi + 0x10]
movsx eax, bx
cmp ecx, eax
jg case.0x482ed3.2
movzx eax, word [esi + 0xe]
cwde
cmp edx, eax
jl case.0x482ed3.2
movzx edi, word [esi + 0x12]
movsx eax, di
cmp edx, eax
jg case.0x482ed3.2
mov eax, dword [esp + 0x7c]
mov edx, dword [esi + 8]
cwde
lea ecx, [eax + eax*4]
movzx eax, word [edx + 0x29]
movzx edx, word [esi + 0xc]
mov word [esp + ecx*2 + 0xb2], ax
sub ebx, edx
movsx eax, word [esp + 0xb0]
movzx ecx, word [esi + 0xe]
sub edi, ecx
lea eax, [eax + eax*4]
mov word [esp + eax*2 + 0xb4], dx
movsx eax, word [esp + 0xb0]
lea eax, [eax + eax*4]
mov word [esp + eax*2 + 0xb6], cx
movsx eax, word [esp + 0xb0]
lea eax, [eax + eax*4]
mov word [esp + eax*2 + 0xb8], bx
movsx eax, word [esp + 0xb0]
lea eax, [eax + eax*4]
mov word [esp + eax*2 + 0xba], di
mov ax, word [esp + 0xb0]
inc ax
mov dword [esp + 0x7c], eax
mov word [esp + 0xb0], ax
cmp ax, 3
jl case.0x482ed3.2
xor eax, eax
mov dword [esp + 0x7c], eax
mov word [esp + 0xb0], ax
jmp case.0x482ed3.2
push dword [esi + 8]
call fcn.00486870
add esp, 4
jmp case.0x482ed3.2
movsx edi, word [esi + 0xc]
mov ecx, dword [0x5c3ab8]
movsx edx, word [esi + 8]
movsx ebx, word [esi + 0xa]
push 0x5b36c8
movzx eax, word [ecx + edi*8 + 4]
shr eax, 1
sub edx, eax
movzx eax, word [ecx + edi*8 + 6]
sub ebx, eax
mov dword [esp + 0x18], edx
mov dword [esp + 0x20], ebx
call fcn.0045fbf0
mov eax, dword [0x5c3ab8]
mov edx, dword [esp + 0x18]
or dword [0x8d03d0], 8
lea eax, [eax + edi*8]
push eax
push ebx
push edx
call fcn.0045fca0
push 0x5a36c8
call fcn.0045fbf0
add esp, 0x14
jmp 0x4858f6
cmp byte [esi + 0x45], 0
jne case.0x482ed3.2
mov bl, byte [0xc27696]
push 0
push 2
mov byte [0xc27696], 1
movzx eax, byte [esi + 0x44]
push eax
lea eax, [esi + 0x30]
push eax
lea eax, [esi + 0x1c]
push eax
lea eax, [esi + 8]
push eax
call fcn.0047bdc0
add esp, 0x18
mov byte [0xc27696], bl
jmp case.0x482ed3.2
cmp byte [esi + 0x31], 0
movups xmm0, xmmword [esi + 8]
mov eax, dword [esi + 0x18]
mov dword [esp + 0x170], eax
movups xmmword [esp + 0x160], xmm0
jne 0x4855ba
movups xmm0, xmmword [esi + 0x1c]
mov eax, dword [esi + 0x2c]
mov dword [esp + 0xf0], eax
movups xmmword [esp + 0xe0], xmm0
mov dword [esp + 0x60], eax
movups xmm0, xmmword [esi + 0x1c]
mov eax, dword [esi + 0x18]
mov dword [esp + 0x90], eax
movups xmmword [esp + 0x50], xmm0
movups xmm0, xmmword [esi + 8]
mov byte [0xc7b008], 0x17
movsx eax, byte [esi + 0x30]
movups xmmword [esp + 0x80], xmm0
cmp eax, 3
ja case.default.0x4854f3
jmp dword [eax*4 + 0x485a74]
movss xmm0, dword [esp + 0x54]
mov ecx, 0x17
addss xmm0, xmm1
movss dword [esp + 0x54], xmm0
movss xmm0, dword [esp + 0x84]
addss xmm0, xmm1
movss dword [esp + 0x84], xmm0
jmp case.default.0x485609
movss xmm0, dword [esp + 0x50]
mov ecx, 0x17
subss xmm0, xmm1
movss dword [esp + 0x50], xmm0
movss xmm0, dword [esp + 0x80]
subss xmm0, xmm1
movss dword [esp + 0x80], xmm0
jmp case.default.0x485609
movss xmm0, dword [esp + 0x54]
mov ecx, 0x17
subss xmm0, xmm1
movss dword [esp + 0x54], xmm0
movss xmm0, dword [esp + 0x84]
subss xmm0, xmm1
movss dword [esp + 0x84], xmm0
jmp case.default.0x485609
movss xmm0, dword [esp + 0x50]
addss xmm0, xmm1
movss dword [esp + 0x50], xmm0
movss xmm0, dword [esp + 0x80]
addss xmm0, xmm1
movss dword [esp + 0x80], xmm0
mov ecx, 0x17
jmp case.default.0x485609
movups xmm0, xmmword [esi + 8]
mov eax, dword [esi + 0x18]
mov ecx, 0x1f
mov dword [esp + 0x90], eax
movups xmmword [esp + 0x80], xmm0
mov dword [esp + 0x60], eax
movups xmm0, xmmword [esi + 8]
mov dword [esp + 0xf0], eax
movups xmmword [esp + 0x50], xmm0
movups xmm0, xmmword [esi + 8]
mov byte [0xc7b008], 0x1f
movsx eax, byte [esi + 0x30]
movups xmmword [esp + 0xe0], xmm0
cmp eax, 3
ja case.default.0x485609
jmp dword [eax*4 + 0x485a84]
movss xmm0, dword [esp + 0xe4]
addss xmm0, xmm1
movss dword [esp + 0xe4], xmm0
movss xmm0, dword [esp + 0x50]
subss xmm0, xmm1
movss dword [esp + 0x50], xmm0
movss xmm0, dword [esp + 0x54]
addss xmm0, xmm1
movss dword [esp + 0x54], xmm0
movss xmm0, dword [esp + 0x80]
subss xmm0, xmm1
movss dword [esp + 0x80], xmm0
jmp case.default.0x485609
movss xmm0, dword [esp + 0xe0]
subss xmm0, xmm1
movss dword [esp + 0xe0], xmm0
movss xmm0, dword [esp + 0x50]
subss xmm0, xmm1
movss dword [esp + 0x50], xmm0
movss xmm0, dword [esp + 0x54]
subss xmm0, xmm1
movss dword [esp + 0x54], xmm0
movss xmm0, dword [esp + 0x84]
subss xmm0, xmm1
jmp 0x48573a
movss xmm0, dword [esp + 0xe4]
subss xmm0, xmm1
movss dword [esp + 0xe4], xmm0
movss xmm0, dword [esp + 0x50]
addss xmm0, xmm1
movss dword [esp + 0x50], xmm0
movss xmm0, dword [esp + 0x54]
subss xmm0, xmm1
movss dword [esp + 0x54], xmm0
movss xmm0, dword [esp + 0x80]
addss xmm0, xmm1
movss dword [esp + 0x80], xmm0
jmp case.default.0x485609
movss xmm0, dword [esp + 0xe0]
addss xmm0, xmm1
movss dword [esp + 0xe0], xmm0
movss xmm0, dword [esp + 0x50]
addss xmm0, xmm1
movss dword [esp + 0x50], xmm0
movss xmm0, dword [esp + 0x54]
addss xmm0, xmm1
movss dword [esp + 0x54], xmm0
movss xmm0, dword [esp + 0x84]
addss xmm0, xmm1
movss dword [esp + 0x84], xmm0
mov eax, dword [ecx*4 + 0x6b9ab0]
push 0
push 2
mov dword [0xc7b004], eax
lea eax, [esp + 0x58]
push ecx
push eax
lea eax, [esp + 0xf0]
mov dword [esp + 0x178], 0
push eax
lea eax, [esp + 0x174]
mov dword [esp + 0x180], 0xfffff
push eax
mov dword [esp + 0x100], 0x1fffff
mov dword [esp + 0x104], 0xfffff
mov dword [esp + 0x70], 0x1fffff
mov dword [esp + 0x74], 0x1fffff
mov dword [esp + 0xa0], 0
mov dword [esp + 0xa4], 0x1fffff
call fcn.0047bdc0
movzx eax, byte [0xc7b008]
push 0
push 2
push eax
lea eax, [esp + 0xa4]
push eax
lea eax, [esp + 0x78]
push eax
lea eax, [esp + 0x18c]
push eax
call fcn.0047bdc0
add esp, 0x30
jmp case.0x482ed3.2
cmp al, 0x1e
movsx eax, byte [esi + 8]
jne 0x485807
mov dword [esp + 0x34], 1
lea eax, [eax*8 + 0x3130]
jmp 0x485816
mov dword [esp + 0x34], 0
lea eax, [eax*8 + 0x10c8]
mov edi, dword [0x5c3ab8]
mov dword [esp + 0x38], eax
movzx ecx, word [edi + eax + 4]
movzx eax, word [edi + eax + 6]
mov dword [esp + 0x18], eax
mov dword [esp + 0x1c], eax
mov eax, dword [0x5cf418]
and eax, 0x380
mov dword [esp + 0xc], ecx
mov dword [esp + 0x14], ecx
mov dword [esp + 0x20], eax
je 0x48586d
lea eax, [esp + 0x1c]
push eax
lea eax, [esp + 0x18]
push eax
push ebx
call fcn.004882c0
mov ecx, dword [esp + 0x20]
add esp, 0xc
mov eax, dword [esp + 0x1c]
mov dword [esp + 0xc], ecx
mov dword [esp + 0x18], eax
movsx edi, word [esi + 0xa]
mov eax, ecx
movsx ebx, word [esi + 0xc]
cdq
sub eax, edx
sar eax, 1
sub edi, eax
mov eax, dword [esp + 0x18]
sub ebx, eax
mov dword [esp + 0x14], edi
cmp dword [esp + 0x34], 0
mov dword [esp + 0x1c], ebx
je 0x4858af
push 0x5b36c8
call fcn.0045fbf0
mov ecx, dword [esp + 0x10]
add esp, 4
or dword [0x8d03d0], 8
mov eax, dword [esp + 0x18]
cmp dword [esp + 0x20], 0
je 0x4858ce
push eax
mov eax, dword [0x5c3ab8]
add eax, dword [esp + 0x3c]
push ecx
push eax
push ebx
push edi
call fcn.0045fb00
add esp, 0x14
jmp 0x4858e2
mov eax, dword [0x5c3ab8]
add eax, dword [esp + 0x38]
push eax
push ebx
push edi
call fcn.0045fca0
add esp, 0xc
cmp dword [esp + 0x34], 0
je case.0x482ed3.2
push 0x5a36c8
call fcn.0045fbf0
add esp, 4
and dword [0x8d03d0], 0xfffffff7
mov esi, dword [esi + 4]
movss xmm1, dword [0x55cc80]
movss xmm2, dword [0x55f918]
mov ecx, dword [esp + 0xc]
mov edx, dword [esp + 0x18]
mov ebx, dword [esp + 0x4c]
mov dword [esp + 0x48], esi
test esi, esi
jne 0x482ec5
mov esi, dword [esp + 0xdc]
dec ebx
sub esi, 4
mov dword [esp + 0x4c], ebx
mov dword [esp + 0xdc], esi
test ebx, ebx
jne 0x482eb7
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret