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

Disassembly:
sub esp, 0x194
mov eax, dword [0x537eb4]
xor eax, esp
mov dword [esp + 0x190], eax
push ebx
mov ebx, dword [esp + 0x1a0]
push ebp
mov ebp, dword [esp + 0x1ac]
push esi
push edi
mov edi, dword [esp + 0x1a8]
mov dword [esp + 0x58], edi
mov dword [esp + 0x90], ebx
mov edx, dword [edi + 0x7610]
cmp edx, 1
jne 0x4cbafe
mov eax, dword [edi + 0x7608]
mov dword [esp + 0x28], eax
jmp 0x4cbb17
mov eax, dword [esp + 0x1b0]
mov edi, ebx
test eax, eax
lea ecx, [ebx + eax]
cmovg edi, ecx
mov dword [esp + 0x28], edi
mov edi, dword [esp + 0x58]
cmp dword [esp + 0x1bc], 0
mov eax, dword [edi + 0x74b0]
mov ecx, dword [edi + 0x7578]
mov esi, dword [edi + 0x760c]
mov dword [esp + 0x24], eax
mov eax, dword [edi + 0x74b4]
mov dword [esp + 0x40], eax
mov eax, dword [edi + 0x74b8]
mov dword [esp + 0x3c], eax
mov eax, dword [esp + 0x24]
mov dword [esp + 0x18], ebx
mov dword [esp + 0x1c], ecx
mov dword [esp + 0x2c], ecx
mov dword [esp + 0x38], esi
je 0x4cdc6c
push 8
pop ecx
cmp dword [esp + 0x1bc], ecx
push dword [esp + 0x1b8]
cmovl ecx, dword [esp + 0x1c0]
mov dword [esp + 0x50], ecx
mov ecx, ebx
sub ecx, eax
mov dword [edi + 0x750c], 1
lea eax, [edi + 0x682c]
mov dword [esp + 0x64], ecx
mov esi, eax
mov dword [esp + 0xe0], eax
lea edi, [esp + 0x138]
lea eax, [esp + 0x10c]
push ebp
movsd dword es:[edi], dword [esi]
push eax
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
call fcn.004c72b3
add esp, 0xc
cmp eax, 0xffffff88
jbe 0x4cbbc9
push 0xffffffffffffffec
pop ebx
jmp 0x4cdcc6
mov ebx, dword [esp + 0x58]
lea eax, [esp + 0x108]
push dword [ebx]
push eax
lea eax, [esp + 0x124]
push eax
call fcn.004d0336
push dword [ebx + 8]
lea eax, [esp + 0x118]
push eax
lea eax, [esp + 0x138]
push eax
call fcn.004d0336
push dword [ebx + 4]
lea eax, [esp + 0x124]
push eax
lea eax, [esp + 0x14c]
push eax
call fcn.004d0336
mov ebp, dword [esp + 0x134]
xor esi, esi
add esp, 0x24
mov dword [esp + 0x50], esi
cmp dword [esp + 0x4c], esi
jle 0x4cc430
lea eax, [esp + 0x140]
mov dword [esp + 0x5c], eax
mov eax, dword [esp + 0x10c]
mov dword [esp + 0x14], eax
mov eax, dword [esp + 0x108]
mov dword [esp + 0x10], eax
mov esi, dword [esp + 0x130]
mov edx, dword [esp + 0x12c]
mov edi, dword [esp + 0x11c]
mov ecx, dword [esp + 0x124]
mov eax, dword [esp + 0x128]
mov ebx, dword [esi + edx*8 + 4]
mov edx, ebx
mov dword [esp + 0x44], ebx
mov ebx, dword [esp + 0x120]
mov esi, dword [eax + ecx*8 + 4]
mov dword [esp + 0x6c], edx
mov dword [esp + 0x30], esi
mov edx, dword [ebx + edi*8 + 4]
mov esi, dword [esp + 0x130]
mov dword [esp + 0x48], edx
mov dword [esp + 0x68], edx
mov dl, byte [ebx + edi*8 + 2]
mov byte [esp + 0x36], dl
mov edx, dword [esp + 0x12c]
mov bl, byte [esi + edx*8 + 2]
mov byte [esp + 0x35], bl
mov bl, byte [eax + ecx*8 + 2]
mov byte [esp + 0x37], bl
mov ebx, dword [esp + 0x120]
movzx esi, word [ebx + edi*8]
mov dword [esp + 0x74], esi
mov esi, dword [esp + 0x130]
movzx ebx, word [esi + edx*8]
movzx edx, byte [esi + edx*8 + 3]
mov dword [esp + 0x7c], ebx
movzx ebx, word [eax + ecx*8]
movzx eax, byte [eax + ecx*8 + 3]
mov dword [esp + 0x80], ebx
mov ebx, dword [esp + 0x120]
mov dword [esp + 0x84], eax
mov al, byte [esp + 0x37]
mov dword [esp + 0x78], edx
movzx edi, byte [ebx + edi*8 + 3]
mov dword [esp + 0x64], edi
cmp al, 1
jbe 0x4cbf3c
cmp dword [esp + 0x1c0], 0
je 0x4cbe35
cmp al, 0x19
jb 0x4cbe35
mov edx, dword [esp + 0x14]
mov ecx, edx
mov ebx, dword [esp + 0x10]
and ecx, 0x1f
movzx eax, al
mov edi, ebx
shl edi, cl
sub eax, 5
mov ecx, eax
add edx, eax
neg ecx
and ecx, 0x1f
shr edi, cl
shl edi, 5
add edi, dword [esp + 0x30]
cmp edx, 0x20
jbe 0x4cbd70
mov ebp, 0x530a6c
mov dword [esp + 0x110], ebp
jmp 0x4cbe10
cmp ebp, dword [esp + 0x118]
jb 0x4cbdaa
mov eax, edx
and edx, 7
shr eax, 3
sub ebp, eax
mov dword [esp + 0x10c], edx
push 4
lea eax, [esp + 0x98]
mov dword [esp + 0x114], ebp
push ebp
push eax
call fcn.004e4a90
mov ebx, dword [esp + 0xa0]
jmp 0x4cbdf4
mov ecx, dword [esp + 0x114]
cmp ebp, ecx
je 0x4cbe10
mov esi, edx
mov eax, ebp
shr esi, 3
sub eax, esi
cmp eax, ecx
jae 0x4cbdc6
mov esi, ebp
sub esi, ecx
mov eax, esi
sub ebp, esi
shl eax, 3
sub edx, eax
mov dword [esp + 0x110], ebp
push 4
lea eax, [esp + 0xe4]
mov dword [esp + 0x110], edx
push ebp
push eax
call fcn.004e4a90
mov ebx, dword [esp + 0xec]
mov edx, dword [esp + 0x118]
add esp, 0xc
mov ebp, dword [esp + 0x110]
mov dword [esp + 0x108], ebx
mov dword [esp + 0x10], ebx
mov esi, dword [esp + 0x10]
mov ecx, edx
and ecx, 0x1f
mov eax, ebx
shl eax, cl
add edx, 5
shr eax, 0x1b
mov dword [esp + 0x14], edx
add edi, eax
mov dword [esp + 0x10c], edx
jmp 0x4cbf2c
mov ebx, dword [esp + 0x14]
mov ecx, ebx
mov esi, dword [esp + 0x10]
and ecx, 0x1f
movzx eax, al
mov edi, esi
shl edi, cl
add ebx, eax
mov ecx, eax
mov dword [esp + 0x14], ebx
neg ecx
mov dword [esp + 0x10c], ebx
and ecx, 0x1f
shr edi, cl
add edi, dword [esp + 0x30]
cmp ebx, 0x20
jbe 0x4cbe79
mov ebp, 0x530a6c
mov dword [esp + 0x110], ebp
jmp 0x4cbf2c
cmp ebp, dword [esp + 0x118]
jb 0x4cbec0
mov eax, ebx
and ebx, 7
shr eax, 3
sub ebp, eax
mov dword [esp + 0x10c], ebx
push 4
lea eax, [esp + 0x8c]
mov dword [esp + 0x114], ebp
push ebp
push eax
call fcn.004e4a90
mov ecx, dword [esp + 0x94]
mov esi, ecx
mov dword [esp + 0x1c], ecx
mov dword [esp + 0x114], ecx
jmp 0x4cbf17
mov ecx, dword [esp + 0x114]
cmp ebp, ecx
je 0x4cbf2c
mov edx, ebx
mov eax, ebp
shr edx, 3
sub eax, edx
cmp eax, ecx
jae 0x4cbedc
mov edx, ebp
sub edx, ecx
mov eax, edx
sub ebp, edx
shl eax, 3
sub ebx, eax
mov dword [esp + 0x110], ebp
push 4
lea eax, [esp + 0x90]
mov dword [esp + 0x110], ebx
push ebp
push eax
call fcn.004e4a90
mov eax, dword [esp + 0x98]
mov esi, eax
mov dword [esp + 0x1c], eax
mov dword [esp + 0x114], eax
mov eax, dword [esp + 0x118]
add esp, 0xc
mov ebp, dword [esp + 0x110]
mov dword [esp + 0x14], eax
mov eax, dword [esp + 0x138]
mov ecx, dword [esp + 0x14]
jmp 0x4cbfbf
mov ecx, dword [esp + 0x48]
xor edx, edx
mov esi, dword [esp + 0x10]
test ecx, ecx
sete dl
test al, al
jne 0x4cbf6a
mov edi, dword [esp + edx*4 + 0x134]
neg ecx
sbb eax, eax
mov ecx, dword [esp + 0x14]
and eax, 4
mov eax, dword [esp + eax + 0x134]
jmp 0x4cbfcd
mov ecx, dword [esp + 0x14]
mov eax, esi
and ecx, 0x1f
shl eax, cl
mov ecx, dword [esp + 0x14]
shr eax, 0x1f
inc ecx
add edx, eax
mov dword [esp + 0x14], ecx
add edx, dword [esp + 0x30]
mov dword [esp + 0x10c], ecx
cmp edx, 3
jne 0x4cbf9d
mov edi, dword [esp + 0x134]
dec edi
jmp 0x4cbfa4
mov edi, dword [esp + edx*4 + 0x134]
xor eax, eax
test edi, edi
sete al
sub edi, eax
mov eax, dword [esp + 0x13c]
cmp edx, 1
cmovne eax, dword [esp + 0x138]
mov dword [esp + 0x13c], eax
mov eax, dword [esp + 0x134]
mov bl, byte [esp + 0x35]
mov dword [esp + 0x138], eax
mov dword [esp + 0x134], edi
mov dword [esp + 0x70], edi
test bl, bl
je 0x4cc019
and ecx, 0x1f
movzx edx, bl
mov eax, esi
shl eax, cl
mov ecx, edx
neg ecx
and ecx, 0x1f
shr eax, cl
mov ecx, dword [esp + 0x14]
add ecx, edx
mov edx, dword [esp + 0x44]
add edx, eax
mov dword [esp + 0x14], ecx
mov dword [esp + 0x10c], ecx
mov dword [esp + 0x44], edx
mov dword [esp + 0x6c], edx
mov bh, byte [esp + 0x36]
movzx edi, bh
movzx eax, bl
add eax, edi
cmp eax, 0x14
jb 0x4cc03f
cmp ecx, 0x20
jbe 0x4cc112
mov ebp, 0x530a6c
mov dword [esp + 0x110], ebp
mov edx, dword [esp + 0x114]
mov eax, dword [esp + 0x10]
test bh, bh
je 0x4cc07b
mov ebx, dword [esp + 0x48]
and ecx, 0x1f
shl eax, cl
mov ecx, edi
neg ecx
and ecx, 0x1f
shr eax, cl
mov ecx, dword [esp + 0x14]
add ecx, edi
add ebx, eax
mov dword [esp + 0x14], ecx
mov dword [esp + 0x10c], ecx
mov dword [esp + 0x48], ebx
mov dword [esp + 0x68], ebx
cmp ecx, 0x20
jbe 0x4cc1c4
mov ebp, 0x530a6c
mov dword [esp + 0x110], ebp
mov edi, dword [esp + 0x10]
mov eax, dword [esp + 0x1bc]
dec eax
cmp dword [esp + 0x50], eax
je 0x4cc3fb
mov eax, dword [esp + 0x64]
mov edx, edi
lea esi, [ecx + eax]
mov ecx, esi
neg ecx
and ecx, 0x1f
shr edx, cl
and edx, dword [eax*4 + 0x5310c8]
mov eax, dword [esp + 0x74]
movzx eax, ax
add edx, eax
mov eax, dword [esp + 0x78]
mov dword [esp + 0x11c], edx
mov edx, edi
lea ebx, [esi + eax]
mov ecx, ebx
neg ecx
and ecx, 0x1f
shr edx, cl
and edx, dword [eax*4 + 0x5310c8]
mov eax, dword [esp + 0x7c]
movzx eax, ax
add edx, eax
mov dword [esp + 0x12c], edx
cmp ebx, 0x20
jbe 0x4cc268
mov ebp, 0x530a6c
mov dword [esp + 0x110], ebp
jmp 0x4cc308
cmp ebp, dword [esp + 0x118]
jb 0x4cc176
mov eax, ecx
and ecx, 7
shr eax, 3
sub ebp, eax
mov dword [esp + 0x10c], ecx
push 4
lea eax, [esp + 0xd4]
mov dword [esp + 0x114], ebp
push ebp
push eax
call fcn.004e4a90
mov eax, dword [esp + 0xdc]
mov ecx, dword [esp + 0x118]
add esp, 0xc
mov ebp, dword [esp + 0x110]
mov edx, dword [esp + 0x114]
mov dword [esp + 0x10], eax
mov dword [esp + 0x108], eax
mov dword [esp + 0x14], ecx
jmp 0x4cc04a
mov edx, dword [esp + 0x114]
cmp ebp, edx
je 0x4cc046
mov esi, ecx
mov eax, ebp
shr esi, 3
sub eax, esi
cmp eax, edx
jae 0x4cc196
mov esi, ebp
sub esi, edx
imul eax, esi, 0xfffffff8
sub ebp, esi
push 4
push ebp
mov dword [esp + 0x118], ebp
add ecx, eax
lea eax, [esp + 0xd4]
push eax
mov dword [esp + 0x118], ecx
call fcn.004e4a90
mov eax, dword [esp + 0xd8]
jmp 0x4cc14a
cmp ebp, dword [esp + 0x118]
jb 0x4cc221
mov eax, ecx
and ecx, 7
shr eax, 3
sub ebp, eax
mov dword [esp + 0x10c], ecx
push 4
lea eax, [esp + 0xa4]
mov dword [esp + 0x114], ebp
push ebp
push eax
call fcn.004e4a90
mov edi, dword [esp + 0xac]
mov ecx, dword [esp + 0x118]
add esp, 0xc
mov ebp, dword [esp + 0x110]
mov dword [esp + 0x10], edi
mov dword [esp + 0x108], edi
mov dword [esp + 0x14], ecx
jmp 0x4cc094
cmp ebp, edx
je 0x4cc090
mov esi, ecx
mov eax, ebp
shr esi, 3
sub eax, esi
cmp eax, edx
jae 0x4cc23a
mov esi, ebp
sub esi, edx
imul eax, esi, 0xfffffff8
sub ebp, esi
push 4
push ebp
mov dword [esp + 0x118], ebp
add ecx, eax
lea eax, [esp + 0xac]
push eax
mov dword [esp + 0x118], ecx
call fcn.004e4a90
mov edi, dword [esp + 0xb0]
jmp 0x4cc1fc
cmp ebp, dword [esp + 0x118]
jb 0x4cc2a2
mov eax, ebx
and ebx, 7
shr eax, 3
sub ebp, eax
mov dword [esp + 0x10c], ebx
push 4
lea eax, [esp + 0x9c]
mov dword [esp + 0x114], ebp
push ebp
push eax
call fcn.004e4a90
mov edi, dword [esp + 0xa4]
jmp 0x4cc2ec
mov esi, dword [esp + 0x114]
cmp ebp, esi
je 0x4cc30f
mov ecx, ebx
mov eax, ebp
shr ecx, 3
sub eax, ecx
cmp eax, esi
jae 0x4cc2be
mov ecx, ebp
sub ecx, esi
mov eax, ecx
sub ebp, ecx
shl eax, 3
sub ebx, eax
mov dword [esp + 0x110], ebp
push 4
lea eax, [esp + 0xa0]
mov dword [esp + 0x110], ebx
push ebp
push eax
call fcn.004e4a90
mov edi, dword [esp + 0xa8]
mov ebx, dword [esp + 0x118]
add esp, 0xc
mov ebp, dword [esp + 0x110]
mov dword [esp + 0x108], edi
mov dword [esp + 0x10], edi
mov esi, dword [esp + 0x114]
mov eax, dword [esp + 0x84]
mov edx, edi
add ebx, eax
mov ecx, ebx
mov dword [esp + 0x14], ebx
neg ecx
mov dword [esp + 0x10c], ebx
and ecx, 0x1f
shr edx, cl
and edx, dword [eax*4 + 0x5310c8]
mov eax, dword [esp + 0x80]
movzx eax, ax
add eax, edx
mov dword [esp + 0x124], eax
cmp ebx, 0x20
jbe 0x4cc35e
mov ebp, 0x530a6c
mov dword [esp + 0x110], ebp
jmp 0x4cc3fb
cmp ebp, dword [esp + 0x118]
jb 0x4cc398
mov eax, ebx
and ebx, 7
shr eax, 3
sub ebp, eax
mov dword [esp + 0x10c], ebx
push 4
lea eax, [esp + 0xac]
mov dword [esp + 0x114], ebp
push ebp
push eax
call fcn.004e4a90
mov edx, dword [esp + 0xb4]
jmp 0x4cc3db
cmp ebp, esi
je 0x4cc3fb
mov ecx, ebx
mov eax, ebp
shr ecx, 3
sub eax, ecx
cmp eax, esi
jae 0x4cc3ad
mov ecx, ebp
sub ecx, esi
mov eax, ecx
sub ebp, ecx
shl eax, 3
sub ebx, eax
mov dword [esp + 0x110], ebp
push 4
lea eax, [esp + 0xb0]
mov dword [esp + 0x110], ebx
push ebp
push eax
call fcn.004e4a90
mov edx, dword [esp + 0xb8]
mov ecx, dword [esp + 0x118]
add esp, 0xc
mov ebp, dword [esp + 0x110]
mov dword [esp + 0x14], ecx
mov dword [esp + 0x108], edx
mov dword [esp + 0x10], edx
mov eax, dword [esp + 0x48]
lea esi, [esp + 0x68]
add eax, dword [esp + 0x44]
add dword [esp + 0x60], eax
mov eax, dword [esp + 0x5c]
mov edi, eax
add eax, 0xc
mov dword [esp + 0x5c], eax
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
mov esi, dword [esp + 0x50]
inc esi
mov dword [esp + 0x50], esi
cmp esi, dword [esp + 0x4c]
jl 0x4cbc4f
jmp 0x4cc446
mov eax, dword [esp + 0x10c]
mov dword [esp + 0x14], eax
mov eax, dword [esp + 0x108]
mov dword [esp + 0x10], eax
mov edx, dword [esp + 0x1bc]
cmp esi, edx
jge 0x4cd461
mov esi, dword [esp + 0x130]
mov edx, dword [esp + 0x12c]
mov edi, dword [esp + 0x11c]
mov ecx, dword [esp + 0x124]
mov eax, dword [esp + 0x128]
mov ebx, dword [esi + edx*8 + 4]
mov edx, ebx
mov dword [esp + 0x48], ebx
mov ebx, dword [esp + 0x120]
mov esi, dword [eax + ecx*8 + 4]
mov dword [esp + 0x6c], edx
mov dword [esp + 0x30], esi
mov edx, dword [ebx + edi*8 + 4]
mov esi, dword [esp + 0x130]
mov dword [esp + 0x44], edx
mov dword [esp + 0x68], edx
mov dl, byte [ebx + edi*8 + 2]
mov byte [esp + 0x37], dl
mov edx, dword [esp + 0x12c]
mov bl, byte [esi + edx*8 + 2]
mov byte [esp + 0x35], bl
mov bl, byte [eax + ecx*8 + 2]
mov byte [esp + 0x36], bl
mov ebx, dword [esp + 0x120]
movzx esi, word [ebx + edi*8]
mov dword [esp + 0xb8], esi
mov esi, dword [esp + 0x130]
movzx ebx, word [esi + edx*8]
movzx edx, byte [esi + edx*8 + 3]
mov dword [esp + 0xc0], ebx
movzx ebx, word [eax + ecx*8]
movzx eax, byte [eax + ecx*8 + 3]
mov dword [esp + 0x20], ebx
mov ebx, dword [esp + 0x120]
mov dword [esp + 0x54], eax
mov al, byte [esp + 0x36]
mov dword [esp + 0xbc], edx
movzx edi, byte [ebx + edi*8 + 3]
mov dword [esp + 0xb4], edi
cmp al, 1
jbe 0x4cc73c
cmp dword [esp + 0x1c0], 0
je 0x4cc641
cmp al, 0x19
jb 0x4cc641
mov edx, dword [esp + 0x14]
mov ecx, edx
mov ebx, dword [esp + 0x10]
and ecx, 0x1f
movzx eax, al
mov edi, ebx
shl edi, cl
sub eax, 5
mov ecx, eax
add edx, eax
neg ecx
and ecx, 0x1f
shr edi, cl
shl edi, 5
add edi, dword [esp + 0x30]
cmp edx, 0x20
jbe 0x4cc57c
mov ebp, 0x530a6c
mov dword [esp + 0x110], ebp
jmp 0x4cc61c
cmp ebp, dword [esp + 0x118]
jb 0x4cc5b6
mov eax, edx
and edx, 7
shr eax, 3
sub ebp, eax
mov dword [esp + 0x10c], edx
push 4
lea eax, [esp + 0x84]
mov dword [esp + 0x114], ebp
push ebp
push eax
call fcn.004e4a90
mov ebx, dword [esp + 0x8c]
jmp 0x4cc600
mov ecx, dword [esp + 0x114]
cmp ebp, ecx
je 0x4cc61c
mov esi, edx
mov eax, ebp
shr esi, 3
sub eax, esi
cmp eax, ecx
jae 0x4cc5d2
mov esi, ebp
sub esi, ecx
mov eax, esi
sub ebp, esi
shl eax, 3
sub edx, eax
mov dword [esp + 0x110], ebp
push 4
lea eax, [esp + 0x88]
mov dword [esp + 0x110], edx
push ebp
push eax
call fcn.004e4a90
mov ebx, dword [esp + 0x90]
mov edx, dword [esp + 0x118]
add esp, 0xc
mov ebp, dword [esp + 0x110]
mov dword [esp + 0x108], ebx
mov dword [esp + 0x10], ebx
mov esi, dword [esp + 0x10]
mov ecx, edx
and ecx, 0x1f
mov eax, ebx
shl eax, cl
add edx, 5
shr eax, 0x1b
mov dword [esp + 0x14], edx
add edi, eax
mov dword [esp + 0x10c], edx
jmp 0x4cc72c
mov ebx, dword [esp + 0x14]
mov ecx, ebx
mov esi, dword [esp + 0x10]
and ecx, 0x1f
movzx eax, al
mov edi, esi
shl edi, cl
add ebx, eax
mov ecx, eax
mov dword [esp + 0x14], ebx
neg ecx
mov dword [esp + 0x10c], ebx
and ecx, 0x1f
shr edi, cl
add edi, dword [esp + 0x30]
cmp ebx, 0x20
jbe 0x4cc685
mov ebp, 0x530a6c
mov dword [esp + 0x110], ebp
jmp 0x4cc72c
cmp ebp, dword [esp + 0x118]
jb 0x4cc6c6
mov eax, ebx
and ebx, 7
shr eax, 3
sub ebp, eax
mov dword [esp + 0x10c], ebx
push 4
lea eax, [esp + 0x60]
mov dword [esp + 0x114], ebp
push ebp
push eax
call fcn.004e4a90
mov ecx, dword [esp + 0x68]
mov esi, ecx
mov dword [esp + 0x1c], ecx
mov dword [esp + 0x114], ecx
jmp 0x4cc717
mov ecx, dword [esp + 0x114]
cmp ebp, ecx
je 0x4cc72c
mov edx, ebx
mov eax, ebp
shr edx, 3
sub eax, edx
cmp eax, ecx
jae 0x4cc6e2
mov edx, ebp
sub edx, ecx
mov eax, edx
sub ebp, edx
shl eax, 3
sub ebx, eax
mov dword [esp + 0x110], ebp
push 4
lea eax, [esp + 0x68]
mov dword [esp + 0x110], ebx
push ebp
push eax
call fcn.004e4a90
mov eax, dword [esp + 0x70]
mov esi, eax
mov dword [esp + 0x1c], eax
mov dword [esp + 0x114], eax
mov eax, dword [esp + 0x118]
add esp, 0xc
mov ebp, dword [esp + 0x110]
mov dword [esp + 0x14], eax
mov eax, dword [esp + 0x138]
mov ecx, dword [esp + 0x14]
jmp 0x4cc7c1
mov ecx, dword [esp + 0x44]
xor edx, edx
mov esi, dword [esp + 0x10]
test ecx, ecx
sete dl
test al, al
jne 0x4cc76a
mov edi, dword [esp + edx*4 + 0x134]
neg ecx
sbb eax, eax
mov ecx, dword [esp + 0x14]
and eax, 4
mov eax, dword [esp + eax + 0x134]
jmp 0x4cc7cf
mov ecx, dword [esp + 0x14]
mov eax, esi
mov ebx, dword [esp + 0x30]
and ecx, 0x1f
shl eax, cl
add edx, ebx
mov ecx, dword [esp + 0x14]
shr eax, 0x1f
inc ecx
add edx, eax
mov dword [esp + 0x14], ecx
mov dword [esp + 0x10c], ecx
cmp edx, 3
jne 0x4cc79f
mov edi, dword [esp + 0x134]
dec edi
jmp 0x4cc7a6
mov edi, dword [esp + edx*4 + 0x134]
xor eax, eax
test edi, edi
sete al
sub edi, eax
mov eax, dword [esp + 0x13c]
cmp edx, 1
cmovne eax, dword [esp + 0x138]
mov dword [esp + 0x13c], eax
mov eax, dword [esp + 0x134]
mov bl, byte [esp + 0x35]
mov dword [esp + 0x138], eax
mov dword [esp + 0x134], edi
mov dword [esp + 0x70], edi
test bl, bl
je 0x4cc81b
and ecx, 0x1f
movzx edx, bl
mov eax, esi
shl eax, cl
mov ecx, edx
neg ecx
and ecx, 0x1f
shr eax, cl
mov ecx, dword [esp + 0x14]
add ecx, edx
mov edx, dword [esp + 0x48]
add edx, eax
mov dword [esp + 0x14], ecx
mov dword [esp + 0x10c], ecx
mov dword [esp + 0x48], edx
mov dword [esp + 0x6c], edx
mov bh, byte [esp + 0x37]
movzx edi, bh
movzx eax, bl
add eax, edi
cmp eax, 0x14
jb 0x4cc841
cmp ecx, 0x20
jbe 0x4cc91d
mov ebp, 0x530a6c
mov dword [esp + 0x110], ebp
mov edx, dword [esp + 0x114]
mov eax, dword [esp + 0x10]
test bh, bh
je 0x4cc879
mov ebx, dword [esp + 0x44]
and ecx, 0x1f
shl eax, cl
mov ecx, edi
neg ecx
and ecx, 0x1f
shr eax, cl
mov ecx, dword [esp + 0x14]
add ecx, edi
add ebx, eax
mov dword [esp + 0x10c], ecx
mov dword [esp + 0x44], ebx
mov dword [esp + 0x68], ebx
cmp ecx, 0x20
jbe 0x4cc9cf
mov ebp, 0x530a6c
mov dword [esp + 0x110], ebp
mov ebx, dword [esp + 0x10]
mov eax, dword [esp + 0x1bc]
mov edi, dword [esp + 0x50]
dec eax
cmp edi, eax
je 0x4ccbd4
mov eax, dword [esp + 0xb4]
mov edx, ebx
lea esi, [ecx + eax]
mov ecx, esi
neg ecx
and ecx, 0x1f
shr edx, cl
and edx, dword [eax*4 + 0x5310c8]
mov eax, dword [esp + 0xb8]
movzx eax, ax
add edx, eax
mov eax, dword [esp + 0xbc]
add esi, eax
mov dword [esp + 0x11c], edx
mov ecx, esi
mov edx, ebx
neg ecx
and ecx, 0x1f
shr edx, cl
and edx, dword [eax*4 + 0x5310c8]
mov eax, dword [esp + 0xc0]
movzx eax, ax
add edx, eax
mov dword [esp + 0x12c], edx
cmp esi, 0x20
jbe 0x4cca68
mov ebp, 0x530a6c
mov dword [esp + 0x110], ebp
jmp 0x4ccb04
cmp ebp, dword [esp + 0x118]
jb 0x4cc981
mov eax, ecx
and ecx, 7
shr eax, 3
sub ebp, eax
mov dword [esp + 0x10c], ecx
push 4
lea eax, [esp + 0x80]
mov dword [esp + 0x114], ebp
push ebp
push eax
call fcn.004e4a90
mov eax, dword [esp + 0x88]
mov ecx, dword [esp + 0x118]
add esp, 0xc
mov ebp, dword [esp + 0x110]
mov edx, dword [esp + 0x114]
mov dword [esp + 0x10], eax
mov dword [esp + 0x108], eax
mov dword [esp + 0x14], ecx
jmp 0x4cc84c
mov edx, dword [esp + 0x114]
cmp ebp, edx
je 0x4cc848
mov esi, ecx
mov eax, ebp
shr esi, 3
sub eax, esi
cmp eax, edx
jae 0x4cc9a1
mov esi, ebp
sub esi, edx
imul eax, esi, 0xfffffff8
sub ebp, esi
push 4
push ebp
mov dword [esp + 0x118], ebp
add ecx, eax
lea eax, [esp + 0x80]
push eax
mov dword [esp + 0x118], ecx
call fcn.004e4a90
mov eax, dword [esp + 0x84]
jmp 0x4cc955
cmp ebp, dword [esp + 0x118]
jb 0x4cca21
mov eax, ecx
and ecx, 7
shr eax, 3
sub ebp, eax
mov dword [esp + 0x10c], ecx
push 4
lea eax, [esp + 0x78]
mov dword [esp + 0x114], ebp
push ebp
push eax
call fcn.004e4a90
mov ebx, dword [esp + 0x80]
mov ebp, dword [esp + 0x11c]
add esp, 0xc
mov ecx, dword [esp + 0x10c]
mov dword [esp + 0x108], ebx
jmp 0x4cc892
cmp ebp, edx
je 0x4cc88e
mov esi, ecx
mov eax, ebp
shr esi, 3
sub eax, esi
cmp eax, edx
jae 0x4cca3a
mov esi, ebp
sub esi, edx
imul eax, esi, 0xfffffff8
sub ebp, esi
push 4
push ebp
mov dword [esp + 0x118], ebp
add ecx, eax
lea eax, [esp + 0xb8]
push eax
mov dword [esp + 0x118], ecx
call fcn.004e4a90
mov ebx, dword [esp + 0xbc]
jmp 0x4cca04
cmp ebp, dword [esp + 0x118]
jb 0x4ccaa2
mov eax, esi
and esi, 7
shr eax, 3
sub ebp, eax
mov dword [esp + 0x10c], esi
push 4
lea eax, [esp + 0xc8]
mov dword [esp + 0x114], ebp
push ebp
push eax
call fcn.004e4a90
mov ebx, dword [esp + 0xd0]
jmp 0x4ccaec
mov edx, dword [esp + 0x114]
cmp ebp, edx
je 0x4ccb0b
mov ecx, esi
mov eax, ebp
shr ecx, 3
sub eax, ecx
cmp eax, edx
jae 0x4ccabe
mov ecx, ebp
sub ecx, edx
mov eax, ecx
sub ebp, ecx
shl eax, 3
sub esi, eax
mov dword [esp + 0x110], ebp
push 4
lea eax, [esp + 0xcc]
mov dword [esp + 0x110], esi
push ebp
push eax
call fcn.004e4a90
mov ebx, dword [esp + 0xd4]
mov esi, dword [esp + 0x118]
add esp, 0xc
mov ebp, dword [esp + 0x110]
mov dword [esp + 0x108], ebx
mov edx, dword [esp + 0x114]
mov eax, dword [esp + 0x54]
add esi, eax
mov ecx, esi
mov dword [esp + 0x10c], esi
neg ecx
and ecx, 0x1f
shr ebx, cl
and ebx, dword [eax*4 + 0x5310c8]
mov eax, dword [esp + 0x20]
movzx eax, ax
add eax, ebx
mov dword [esp + 0x124], eax
cmp esi, 0x20
jbe 0x4ccb4d
mov dword [esp + 0x110], 0x530a6c
jmp 0x4ccbd4
cmp ebp, dword [esp + 0x118]
jb 0x4ccb87
mov eax, esi
and esi, 7
shr eax, 3
sub ebp, eax
mov dword [esp + 0x10c], esi
push 4
lea eax, [esp + 0xd8]
mov dword [esp + 0x114], ebp
push ebp
push eax
call fcn.004e4a90
mov eax, dword [esp + 0xe0]
jmp 0x4ccbca
cmp ebp, edx
je 0x4ccbd4
mov ecx, esi
mov eax, ebp
shr ecx, 3
sub eax, ecx
cmp eax, edx
jae 0x4ccb9c
mov ecx, ebp
sub ecx, edx
mov eax, ecx
sub ebp, ecx
shl eax, 3
sub esi, eax
mov dword [esp + 0x110], ebp
push 4
lea eax, [esp + 0xdc]
mov dword [esp + 0x110], esi
push ebp
push eax
call fcn.004e4a90
mov eax, dword [esp + 0xe4]
mov dword [esp + 0x114], eax
add esp, 0xc
mov ebp, dword [esp + 0x58]
mov ecx, edi
and ecx, 7
mov edx, dword [ebp + 0x7610]
cmp edx, 2
jne 0x4cceea
mov esi, dword [ebp + 0x760c]
lea ebx, [esp + 0x140]
mov ebp, dword [esp + 0x1c]
imul eax, ecx, 0xc
add ebx, eax
mov dword [esp + 0x10], ebx
mov edi, dword [ebx]
lea eax, [edi + ebp]
cmp eax, esi
jbe 0x4cceee
sub esi, ebp
mov ebp, dword [esp + 0x18]
je 0x4ccc41
mov eax, dword [esp + 0x28]
sub eax, ebp
cmp esi, eax
ja 0x4cd45a
push esi
push dword [esp + 0x20]
push ebp
call fcn.004d056a
sub edi, esi
add esp, 0xc
add ebp, esi
mov dword [ebx], edi
mov dword [esp + 0x18], ebp
mov edx, dword [esp + 0x58]
lea edi, [esp + 0xfc]
mov esi, ebx
and dword [edx + 0x7610], 0
lea eax, [edx + 0x17614]
movsd dword es:[edi], dword [esi]
lea ecx, [edx + 0x7614]
mov dword [esp + 0x38], eax
mov dword [esp + 0x2c], ecx
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
mov eax, dword [esp + 0xfc]
mov esi, dword [esp + 0x100]
lea edx, [eax + ebp]
lea ebx, [esi + eax]
mov dword [esp + 0x30], edx
add eax, ecx
mov edi, edx
sub edi, dword [esp + 0x104]
mov dword [esp + 0x1c], eax
cmp eax, dword [esp + 0x38]
ja 0x4ccea0
mov eax, dword [esp + 0x28]
lea ecx, [ebx + ebp]
add eax, 0xffffffe0
cmp ecx, eax
ja 0x4ccea0
mov ecx, dword [esp + 0x28]
lea eax, [ebx + 0x20]
sub ecx, ebp
cmp ecx, eax
jb 0x4ccea0
mov ecx, dword [esp + 0x58]
mov eax, dword [esp + 0xfc]
movups xmm0, xmmword [ecx + 0x7614]
movups xmmword [ebp], xmm0
cmp eax, 0x10
jbe 0x4ccd26
add eax, 0xfffffff0
lea esi, [ecx + 0x7624]
lea ecx, [ebp + 0x10]
movups xmm0, xmmword [esi]
lea ebp, [ecx + eax]
mov dword [esp + 0x20], ebp
mov ebp, dword [esp + 0x18]
movups xmmword [ecx], xmm0
cmp eax, 0x10
jle 0x4ccd1f
mov eax, dword [esp + 0x20]
add ecx, 0x10
add esi, 0x10
movups xmm0, xmmword [esi]
lea esi, [esi + 0x20]
movups xmmword [ecx], xmm0
movups xmm0, xmmword [esi - 0x10]
movups xmmword [ecx + 0x10], xmm0
add ecx, 0x20
cmp ecx, eax
jb 0x4ccd07
mov esi, dword [esp + 0x100]
mov eax, dword [esp + 0x1c]
mov ecx, dword [esp + 0x104]
mov dword [esp + 0x2c], eax
mov eax, edx
sub eax, dword [esp + 0x24]
cmp ecx, eax
jbe 0x4ccda9
mov eax, edx
sub eax, dword [esp + 0x40]
cmp ecx, eax
ja 0x4cbbc1
mov ecx, dword [esp + 0x3c]
mov eax, ecx
sub eax, dword [esp + 0x24]
add edi, eax
lea eax, [edi + esi]
cmp eax, ecx
ja 0x4ccd70
push esi
push edi
push edx
call fcn.004e5010
add esp, 0xc
jmp 0x4cced8
mov esi, ecx
sub esi, edi
push esi
push edi
push edx
call fcn.004e5010
mov edx, dword [esp + 0x3c]
add esp, 0xc
mov edi, dword [esp + 0x24]
add edx, esi
sub dword [esp + 0x100], esi
mov esi, dword [esp + 0x100]
mov ecx, dword [esp + 0x104]
mov dword [esp + 0x30], edx
mov dword [esp + 0x100], esi
cmp ecx, 0x10
jb 0x4ccde3
movups xmm0, xmmword [edi]
push 0x10
pop ecx
lea eax, [esi + edx]
movups xmmword [edx], xmm0
cmp esi, ecx
jle 0x4cced8
add edx, ecx
add edi, ecx
movups xmm0, xmmword [edi]
add edi, ecx
movups xmmword [edx], xmm0
add edx, ecx
movups xmm0, xmmword [edi]
add edi, ecx
movups xmmword [edx], xmm0
add edx, ecx
cmp edx, eax
jb 0x4ccdc6
jmp 0x4cced8
cmp ecx, 8
jae 0x4cce26
mov al, byte [edi]
mov esi, dword [ecx*4 + 0x530fa8]
mov byte [edx], al
mov al, byte [edi + 1]
mov byte [edx + 1], al
mov al, byte [edi + 2]
mov byte [edx + 2], al
mov al, byte [edi + 3]
add edi, dword [ecx*4 + 0x530f88]
push 4
mov byte [edx + 3], al
lea eax, [edx + 4]
push edi
push eax
call fcn.004e4a90
add esp, 0xc
sub edi, esi
mov esi, dword [esp + 0x100]
jmp 0x4cce2f
push edi
push edx
call fcn.004cb2b4
pop ecx
pop ecx
cmp esi, 8
jbe 0x4cced8
lea ecx, [esi - 8]
add edi, 8
mov esi, dword [esp + 0x30]
add esi, 8
mov eax, esi
sub eax, edi
lea edx, [esi + ecx]
mov dword [esp + 0x20], edx
cmp eax, 0x10
jge 0x4cce72
sub edi, esi
mov ebp, edx
lea eax, [edi + esi]
push eax
push esi
call fcn.004cb2b4
add esi, 8
pop ecx
pop ecx
cmp esi, ebp
jb 0x4cce59
mov ebp, dword [esp + 0x18]
jmp 0x4cced8
movups xmm0, xmmword [edi]
movups xmmword [esi], xmm0
cmp ecx, 0x10
jle 0x4cced8
push 0x10
add esi, 0x10
add edi, 0x10
pop ecx
movups xmm0, xmmword [edi]
add edi, ecx
movups xmmword [esi], xmm0
add esi, ecx
movups xmm0, xmmword [edi]
add edi, ecx
movups xmmword [esi], xmm0
add esi, ecx
cmp esi, edx
jb 0x4cce86
jmp 0x4cced8
push dword [esp + 0x3c]
mov esi, dword [esp + 0x14]
lea eax, [esp + 0x30]
push dword [esp + 0x44]
push dword [esp + 0x2c]
push dword [esp + 0x44]
push eax
sub esp, 0xc
mov edi, esp
push dword [esp + 0x48]
movsd dword es:[edi], dword [esi]
push ebp
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
call fcn.004d00d1
mov ebx, eax
add esp, 0x28
mov eax, dword [esp + 0x2c]
mov dword [esp + 0x1c], eax
cmp ebx, 0xffffff88
ja 0x4cdcc6
mov edi, dword [esp + 0x10]
jmp 0x4cd40b
mov ebp, dword [esp + 0x1c]
imul eax, ecx, 0xc
lea eax, [esp + eax + 0x140]
mov dword [esp + 0x10], eax
mov esi, eax
cmp edx, 2
jne 0x4cd182
mov ecx, dword [eax]
lea edi, [esp + 0xe4]
movsd dword es:[edi], dword [esi]
add ecx, 0xffffffe0
add ecx, ebp
mov ebp, dword [esp + 0x18]
mov dword [esp + 0x20], ecx
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
mov eax, dword [esp + 0xe4]
mov esi, dword [esp + 0xe8]
lea edx, [eax + ebp]
lea ebx, [esi + eax]
mov dword [esp + 0x30], edx
add eax, dword [esp + 0x1c]
mov edi, edx
sub edi, dword [esp + 0xec]
mov dword [esp + 0x54], eax
cmp eax, dword [esp + 0x38]
ja 0x4cd14e
lea eax, [ebx + ebp]
cmp eax, ecx
ja 0x4cd14e
mov ecx, dword [esp + 0x28]
lea eax, [ebx + 0x20]
sub ecx, ebp
cmp ecx, eax
jb 0x4cd14a
mov ecx, dword [esp + 0x1c]
mov eax, dword [esp + 0xe4]
movups xmm0, xmmword [ecx]
movups xmmword [ebp], xmm0
cmp eax, 0x10
jbe 0x4ccfce
add eax, 0xfffffff0
lea esi, [ecx + 0x10]
lea ecx, [ebp + 0x10]
movups xmm0, xmmword [esi]
lea ebp, [ecx + eax]
mov dword [esp + 0x20], ebp
mov ebp, dword [esp + 0x18]
movups xmmword [ecx], xmm0
cmp eax, 0x10
jle 0x4ccfc7
mov eax, dword [esp + 0x20]
add ecx, 0x10
add esi, 0x10
movups xmm0, xmmword [esi]
lea esi, [esi + 0x20]
movups xmmword [ecx], xmm0
movups xmm0, xmmword [esi - 0x10]
movups xmmword [ecx + 0x10], xmm0
add ecx, 0x20
cmp ecx, eax
jb 0x4ccfaf
mov esi, dword [esp + 0xe8]
mov eax, dword [esp + 0x54]
mov ecx, dword [esp + 0xec]
mov dword [esp + 0x1c], eax
mov dword [esp + 0x2c], eax
mov eax, edx
sub eax, dword [esp + 0x24]
cmp ecx, eax
jbe 0x4cd049
mov eax, edx
sub eax, dword [esp + 0x40]
cmp ecx, eax
ja 0x4cd26c
mov ecx, dword [esp + 0x3c]
mov eax, ecx
sub eax, dword [esp + 0x24]
add edi, eax
lea eax, [edi + esi]
cmp eax, ecx
jbe 0x4cd287
mov esi, ecx
sub esi, edi
push esi
push edi
push edx
call fcn.004e5010
mov edx, dword [esp + 0x3c]
add esp, 0xc
mov edi, dword [esp + 0x24]
add edx, esi
sub dword [esp + 0xe8], esi
mov esi, dword [esp + 0xe8]
mov ecx, dword [esp + 0xec]
mov dword [esp + 0x30], edx
mov dword [esp + 0xe8], esi
cmp ecx, 0x10
jb 0x4cd083
movups xmm0, xmmword [edi]
push 0x10
pop ecx
lea eax, [esi + edx]
movups xmmword [edx], xmm0
cmp esi, ecx
jle 0x4cd3fe
add edx, ecx
add edi, ecx
movups xmm0, xmmword [edi]
add edi, ecx
movups xmmword [edx], xmm0
add edx, ecx
movups xmm0, xmmword [edi]
add edi, ecx
movups xmmword [edx], xmm0
add edx, ecx
cmp edx, eax
jb 0x4cd066
jmp 0x4cd3fe
cmp ecx, 8
jae 0x4cd0c6
mov al, byte [edi]
mov esi, dword [ecx*4 + 0x530fa8]
mov byte [edx], al
mov al, byte [edi + 1]
mov byte [edx + 1], al
mov al, byte [edi + 2]
mov byte [edx + 2], al
mov al, byte [edi + 3]
add edi, dword [ecx*4 + 0x530f88]
push 4
mov byte [edx + 3], al
lea eax, [edx + 4]
push edi
push eax
call fcn.004e4a90
add esp, 0xc
sub edi, esi
mov esi, dword [esp + 0xe8]
jmp 0x4cd0cf
push edi
push edx
call fcn.004cb2b4
pop ecx
pop ecx
cmp esi, 8
jbe 0x4cd3fe
lea ecx, [esi - 8]
add edi, 8
mov esi, dword [esp + 0x30]
add esi, 8
mov eax, esi
sub eax, edi
lea edx, [esi + ecx]
mov dword [esp + 0x20], edx
cmp eax, 0x10
jge 0x4cd115
sub edi, esi
mov ebp, edx
lea eax, [edi + esi]
push eax
push esi
call fcn.004cb2b4
add esi, 8
pop ecx
pop ecx
cmp esi, ebp
jb 0x4cd0f9
mov ebp, dword [esp + 0x18]
jmp 0x4cd3fe
movups xmm0, xmmword [edi]
movups xmmword [esi], xmm0
cmp ecx, 0x10
jle 0x4cd3fe
push 0x10
add esi, 0x10
add edi, 0x10
pop ecx
movups xmm0, xmmword [edi]
add edi, ecx
movups xmmword [esi], xmm0
add esi, ecx
movups xmm0, xmmword [edi]
add edi, ecx
movups xmmword [esi], xmm0
add esi, ecx
cmp esi, edx
jb 0x4cd12d
jmp 0x4cd3fe
mov ecx, dword [esp + 0x20]
push dword [esp + 0x3c]
mov esi, dword [esp + 0x14]
lea eax, [esp + 0x30]
push dword [esp + 0x44]
push dword [esp + 0x2c]
push dword [esp + 0x44]
push eax
sub esp, 0xc
mov edi, esp
push ecx
push dword [esp + 0x4c]
movsd dword es:[edi], dword [esi]
push ebp
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
call fcn.004d01b6
add esp, 0x2c
jmp 0x4cd3f4
mov ebp, dword [esp + 0x18]
lea edi, [esp + 0xf0]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
mov eax, dword [esp + 0xf0]
mov esi, dword [esp + 0xf4]
lea edx, [eax + ebp]
lea ebx, [esi + eax]
mov dword [esp + 0x30], edx
add eax, dword [esp + 0x1c]
mov edi, edx
sub edi, dword [esp + 0xf8]
mov dword [esp + 0x54], eax
cmp eax, dword [esp + 0x38]
ja 0x4cd3c6
mov eax, dword [esp + 0x28]
lea ecx, [ebx + ebp]
add eax, 0xffffffe0
cmp ecx, eax
ja 0x4cd3c6
mov ecx, dword [esp + 0x28]
lea eax, [ebx + 0x20]
sub ecx, ebp
cmp ecx, eax
jb 0x4cd3c6
mov ecx, dword [esp + 0x1c]
mov eax, dword [esp + 0xf0]
movups xmm0, xmmword [ecx]
movups xmmword [ebp], xmm0
cmp eax, 0x10
jbe 0x4cd245
add eax, 0xfffffff0
lea esi, [ecx + 0x10]
lea ecx, [ebp + 0x10]
movups xmm0, xmmword [esi]
lea ebp, [ecx + eax]
mov dword [esp + 0x20], ebp
mov ebp, dword [esp + 0x18]
movups xmmword [ecx], xmm0
cmp eax, 0x10
jle 0x4cd23e
mov eax, dword [esp + 0x20]
add ecx, 0x10
add esi, 0x10
movups xmm0, xmmword [esi]
lea esi, [esi + 0x20]
movups xmmword [ecx], xmm0
movups xmm0, xmmword [esi - 0x10]
movups xmmword [ecx + 0x10], xmm0
add ecx, 0x20
cmp ecx, eax
jb 0x4cd226
mov esi, dword [esp + 0xf4]
mov eax, dword [esp + 0x54]
mov ecx, dword [esp + 0xf8]
mov dword [esp + 0x1c], eax
mov dword [esp + 0x2c], eax
mov eax, edx
sub eax, dword [esp + 0x24]
cmp ecx, eax
jbe 0x4cd2d0
mov eax, edx
sub eax, dword [esp + 0x40]
cmp ecx, eax
jbe 0x4cd274
push 0xffffffffffffffec
pop ebx
jmp 0x4cd3fe
mov ecx, dword [esp + 0x3c]
mov eax, ecx
sub eax, dword [esp + 0x24]
add edi, eax
lea eax, [edi + esi]
cmp eax, ecx
ja 0x4cd297
push esi
push edi
push edx
call fcn.004e5010
add esp, 0xc
jmp 0x4cd3fe
mov esi, ecx
sub esi, edi
push esi
push edi
push edx
call fcn.004e5010
mov edx, dword [esp + 0x3c]
add esp, 0xc
mov edi, dword [esp + 0x24]
add edx, esi
sub dword [esp + 0xf4], esi
mov esi, dword [esp + 0xf4]
mov ecx, dword [esp + 0xf8]
mov dword [esp + 0x30], edx
mov dword [esp + 0xf4], esi
cmp ecx, 0x10
jb 0x4cd30a
movups xmm0, xmmword [edi]
push 0x10
pop ecx
lea eax, [esi + edx]
movups xmmword [edx], xmm0
cmp esi, ecx
jle 0x4cd3fe
add edx, ecx
add edi, ecx
movups xmm0, xmmword [edi]
add edi, ecx
movups xmmword [edx], xmm0
add edx, ecx
movups xmm0, xmmword [edi]
add edi, ecx
movups xmmword [edx], xmm0
add edx, ecx
cmp edx, eax
jb 0x4cd2ed
jmp 0x4cd3fe
cmp ecx, 8
jae 0x4cd34d
mov al, byte [edi]
mov esi, dword [ecx*4 + 0x530fa8]
mov byte [edx], al
mov al, byte [edi + 1]
mov byte [edx + 1], al
mov al, byte [edi + 2]
mov byte [edx + 2], al
mov al, byte [edi + 3]
add edi, dword [ecx*4 + 0x530f88]
push 4
mov byte [edx + 3], al
lea eax, [edx + 4]
push edi
push eax
call fcn.004e4a90
add esp, 0xc
sub edi, esi
mov esi, dword [esp + 0xf4]
jmp 0x4cd356
push edi
push edx
call fcn.004cb2b4
pop ecx
pop ecx
cmp esi, 8
jbe 0x4cd3fe
lea ecx, [esi - 8]
add edi, 8
mov esi, dword [esp + 0x30]
add esi, 8
mov eax, esi
sub eax, edi
lea edx, [esi + ecx]
mov dword [esp + 0x20], edx
cmp eax, 0x10
jge 0x4cd398
sub edi, esi
mov ebp, edx
lea eax, [edi + esi]
push eax
push esi
call fcn.004cb2b4
add esi, 8
pop ecx
pop ecx
cmp esi, ebp
jb 0x4cd380
jmp 0x4cd10c
movups xmm0, xmmword [edi]
movups xmmword [esi], xmm0
cmp ecx, 0x10
jle 0x4cd3fe
push 0x10
add esi, 0x10
add edi, 0x10
pop ecx
movups xmm0, xmmword [edi]
add edi, ecx
movups xmmword [esi], xmm0
add esi, ecx
movups xmm0, xmmword [edi]
add edi, ecx
movups xmmword [esi], xmm0
add esi, ecx
cmp esi, edx
jb 0x4cd3ac
jmp 0x4cd3fe
push dword [esp + 0x3c]
mov esi, dword [esp + 0x14]
lea eax, [esp + 0x30]
push dword [esp + 0x44]
push dword [esp + 0x2c]
push dword [esp + 0x44]
push eax
sub esp, 0xc
mov edi, esp
push dword [esp + 0x48]
movsd dword es:[edi], dword [esi]
push ebp
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
call fcn.004d00d1
add esp, 0x28
mov ebx, eax
mov eax, dword [esp + 0x2c]
mov dword [esp + 0x1c], eax
cmp ebx, 0xffffff88
ja 0x4cdcc6
mov edi, dword [esp + 0x10]
mov eax, dword [esp + 0x44]
lea esi, [esp + 0x68]
add eax, dword [esp + 0x48]
add ebp, ebx
add dword [esp + 0x60], eax
mov edx, dword [esp + 0x1bc]
movsd dword es:[edi], dword [esi]
mov dword [esp + 0x18], ebp
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
mov esi, dword [esp + 0x50]
inc esi
mov dword [esp + 0x50], esi
cmp esi, edx
jge 0x4cd461
mov eax, dword [esp + 0x10c]
mov ebp, dword [esp + 0x110]
mov dword [esp + 0x14], eax
mov eax, dword [esp + 0x108]
mov dword [esp + 0x10], eax
jmp 0x4cc455
push 0xffffffffffffffba
jmp 0x4cbbc3
lea eax, [esp + 0x108]
push eax
call fcn.004c729a
pop ecx
test eax, eax
je 0x4cbbc1
sub esi, dword [esp + 0x4c]
cmp esi, edx
jmp 0x4cdc3b
mov ebp, dword [esp + 0x58]
lea ebx, [esp + 0x140]
mov eax, esi
and eax, 7
imul eax, eax, 0xc
add ebx, eax
cmp dword [ebp + 0x7610], 2
mov dword [esp + 0x4c], ebx
jne 0x4cd9ab
mov edi, dword [ebx]
mov ecx, dword [esp + 0x1c]
mov esi, dword [ebp + 0x760c]
mov edx, dword [esp + 0x18]
lea eax, [edi + ecx]
cmp eax, esi
jbe 0x4cd734
sub esi, ecx
je 0x4cd4ea
mov eax, dword [esp + 0x28]
sub eax, edx
cmp esi, eax
ja 0x4cd45a
push esi
push ecx
push edx
call fcn.004d056a
mov edx, dword [esp + 0x24]
sub edi, esi
add esp, 0xc
mov dword [ebx], edi
add edx, esi
mov dword [esp + 0x18], edx
and dword [ebp + 0x7610], 0
lea edi, [esp + 0xf0]
mov esi, ebx
lea eax, [ebp + 0x17614]
mov dword [esp + 0x38], eax
lea ecx, [ebp + 0x7614]
mov dword [esp + 0x2c], ecx
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
mov eax, dword [esp + 0xf0]
mov esi, dword [esp + 0xf4]
lea ebp, [eax + edx]
lea ebx, [esi + eax]
mov edi, ebp
sub edi, dword [esp + 0xf8]
add eax, ecx
mov dword [esp + 0x1c], eax
cmp eax, dword [esp + 0x38]
ja 0x4cdbe4
mov eax, dword [esp + 0x28]
lea ecx, [ebx + edx]
add eax, 0xffffffe0
cmp ecx, eax
ja 0x4cdbe4
mov ecx, dword [esp + 0x28]
lea eax, [ebx + 0x20]
sub ecx, edx
cmp ecx, eax
jb 0x4cdbe4
mov ecx, dword [esp + 0x58]
mov eax, dword [esp + 0xf0]
movups xmm0, xmmword [ecx + 0x7614]
movups xmmword [edx], xmm0
cmp eax, 0x10
jbe 0x4cd5c3
movups xmm0, xmmword [ecx + 0x7624]
add edx, 0x10
add eax, 0xfffffff0
lea esi, [edx + eax]
mov dword [esp + 0x20], esi
mov esi, dword [esp + 0xf4]
movups xmmword [edx], xmm0
cmp eax, 0x10
jle 0x4cd5c3
mov eax, dword [esp + 0x20]
add edx, 0x10
add ecx, 0x7634
movups xmm0, xmmword [ecx]
lea ecx, [ecx + 0x20]
movups xmmword [edx], xmm0
movups xmm0, xmmword [ecx - 0x10]
movups xmmword [edx + 0x10], xmm0
add edx, 0x20
cmp edx, eax
jb 0x4cd5ab
mov eax, dword [esp + 0x1c]
mov edx, dword [esp + 0x24]
mov ecx, dword [esp + 0xf8]
mov dword [esp + 0x2c], eax
mov eax, ebp
sub eax, edx
cmp ecx, eax
jbe 0x4cd62f
mov eax, ebp
sub eax, dword [esp + 0x40]
cmp ecx, eax
ja 0x4cbbc1
mov ecx, dword [esp + 0x3c]
mov eax, ecx
sub eax, edx
add edi, eax
lea eax, [edi + esi]
cmp eax, ecx
jbe 0x4cd82c
mov esi, ecx
sub esi, edi
push esi
push edi
push ebp
call fcn.004e5010
mov eax, dword [esp + 0x100]
add esp, 0xc
mov edi, dword [esp + 0x24]
add ebp, esi
mov ecx, dword [esp + 0xf8]
sub eax, esi
mov dword [esp + 0xf4], eax
jmp 0x4cd636
mov eax, dword [esp + 0xf4]
push 0x10
pop edx
cmp ecx, edx
jb 0x4cd673
lea ecx, [eax + ebp]
movups xmm0, xmmword [edi]
movups xmmword [ebp], xmm0
cmp eax, edx
jle 0x4cdbde
add ebp, 0x10
add edi, edx
movups xmm0, xmmword [edi]
add edi, edx
movups xmmword [ebp], xmm0
add ebp, edx
movups xmm0, xmmword [edi]
add edi, edx
movups xmmword [ebp], xmm0
add ebp, edx
cmp ebp, ecx
jb 0x4cd654
jmp 0x4cdbde
cmp ecx, 8
jae 0x4cd6b0
mov al, byte [edi]
mov esi, dword [ecx*4 + 0x530fa8]
mov byte [ebp], al
mov al, byte [edi + 1]
mov byte [ebp + 1], al
mov al, byte [edi + 2]
mov byte [ebp + 2], al
mov al, byte [edi + 3]
add edi, dword [ecx*4 + 0x530f88]
push 4
mov byte [ebp + 3], al
lea eax, [ebp + 4]
push edi
push eax
call fcn.004e4a90
add esp, 0xc
sub edi, esi
jmp 0x4cd6b9
push edi
push ebp
call fcn.004cb2b4
pop ecx
pop ecx
mov esi, dword [esp + 0xf4]
cmp esi, 8
jbe 0x4cdbde
add ebp, 8
add esi, 0xfffffff8
add edi, 8
mov eax, ebp
push 0x10
sub eax, edi
pop edx
lea ecx, [esi + ebp]
mov dword [esp + 0x20], ecx
cmp eax, edx
jge 0x4cd700
sub edi, ebp
mov esi, ecx
lea eax, [edi + ebp]
push eax
push ebp
call fcn.004cb2b4
add ebp, 8
pop ecx
pop ecx
cmp ebp, esi
jb 0x4cd6e8
jmp 0x4cdbde
movups xmm0, xmmword [edi]
movups xmmword [ebp], xmm0
cmp esi, edx
jle 0x4cdbde
add ebp, 0x10
add edi, 0x10
movups xmm0, xmmword [edi]
add edi, edx
movups xmmword [ebp], xmm0
add ebp, edx
movups xmm0, xmmword [edi]
add edi, edx
movups xmmword [ebp], xmm0
add ebp, edx
cmp ebp, ecx
jb 0x4cd715
jmp 0x4cdbde
mov esi, ebx
lea edi, [esp + 0xe4]
lea ecx, [eax - 0x20]
mov dword [esp + 0x20], ecx
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
mov eax, dword [esp + 0xe4]
mov esi, dword [esp + 0xe8]
lea ebp, [eax + edx]
lea ebx, [esi + eax]
mov edi, ebp
add eax, dword [esp + 0x1c]
sub edi, dword [esp + 0xec]
mov dword [esp + 0x54], eax
cmp eax, dword [esp + 0x38]
ja 0x4cd973
lea eax, [ebx + edx]
cmp eax, ecx
ja 0x4cd973
mov ecx, dword [esp + 0x28]
lea eax, [ebx + 0x20]
sub ecx, edx
cmp ecx, eax
jb 0x4cd96f
mov ecx, dword [esp + 0x1c]
mov eax, dword [esp + 0xe4]
movups xmm0, xmmword [ecx]
movups xmmword [edx], xmm0
cmp eax, 0x10
jbe 0x4cd7ea
movups xmm0, xmmword [ecx + 0x10]
add edx, 0x10
add eax, 0xfffffff0
lea esi, [edx + eax]
mov dword [esp + 0x20], esi
mov esi, dword [esp + 0xe8]
movups xmmword [edx], xmm0
cmp eax, 0x10
jle 0x4cd7ea
mov eax, dword [esp + 0x20]
add edx, 0x10
add ecx, 0x20
movups xmm0, xmmword [ecx]
lea ecx, [ecx + 0x20]
movups xmmword [edx], xmm0
movups xmm0, xmmword [ecx - 0x10]
movups xmmword [edx + 0x10], xmm0
add edx, 0x20
cmp edx, eax
jb 0x4cd7d2
mov eax, dword [esp + 0x54]
mov edx, dword [esp + 0x24]
mov ecx, dword [esp + 0xec]
mov dword [esp + 0x1c], eax
mov dword [esp + 0x2c], eax
mov eax, ebp
sub eax, edx
cmp ecx, eax
jbe 0x4cd86a
mov eax, ebp
sub eax, dword [esp + 0x40]
cmp ecx, eax
jbe 0x4cd81b
push 0xffffffffffffffec
pop ebx
jmp 0x4cdbde
mov ecx, dword [esp + 0x3c]
mov eax, ecx
sub eax, edx
add edi, eax
lea eax, [edi + esi]
cmp eax, ecx
ja 0x4cd83c
push esi
push edi
push ebp
call fcn.004e5010
add esp, 0xc
jmp 0x4cdbde
mov esi, ecx
sub esi, edi
push esi
push edi
push ebp
call fcn.004e5010
mov eax, dword [esp + 0xf4]
add esp, 0xc
mov edi, dword [esp + 0x24]
add ebp, esi
mov ecx, dword [esp + 0xec]
sub eax, esi
mov dword [esp + 0xe8], eax
jmp 0x4cd871
mov eax, dword [esp + 0xe8]
push 0x10
pop edx
cmp ecx, edx
jb 0x4cd8ae
lea ecx, [eax + ebp]
movups xmm0, xmmword [edi]
movups xmmword [ebp], xmm0
cmp eax, edx
jle 0x4cdbde
add ebp, 0x10
add edi, edx
movups xmm0, xmmword [edi]
add edi, edx
movups xmmword [ebp], xmm0
add ebp, edx
movups xmm0, xmmword [edi]
add edi, edx
movups xmmword [ebp], xmm0
add ebp, edx
cmp ebp, ecx
jb 0x4cd88f
jmp 0x4cdbde
cmp ecx, 8
jae 0x4cd8eb
mov al, byte [edi]
mov esi, dword [ecx*4 + 0x530fa8]
mov byte [ebp], al
mov al, byte [edi + 1]
mov byte [ebp + 1], al
mov al, byte [edi + 2]
mov byte [ebp + 2], al
mov al, byte [edi + 3]
add edi, dword [ecx*4 + 0x530f88]
push 4
mov byte [ebp + 3], al
lea eax, [ebp + 4]
push edi
push eax
call fcn.004e4a90
add esp, 0xc
sub edi, esi
jmp 0x4cd8f4
push edi
push ebp
call fcn.004cb2b4
pop ecx
pop ecx
mov esi, dword [esp + 0xe8]
cmp esi, 8
jbe 0x4cdbde
add ebp, 8
add esi, 0xfffffff8
add edi, 8
mov eax, ebp
push 0x10
sub eax, edi
pop edx
lea ecx, [esi + ebp]
mov dword [esp + 0x20], ecx
cmp eax, edx
jge 0x4cd93b
sub edi, ebp
mov esi, ecx
lea eax, [edi + ebp]
push eax
push ebp
call fcn.004cb2b4
add ebp, 8
pop ecx
pop ecx
cmp ebp, esi
jb 0x4cd923
jmp 0x4cdbde
movups xmm0, xmmword [edi]
movups xmmword [ebp], xmm0
cmp esi, edx
jle 0x4cdbde
add ebp, 0x10
add edi, 0x10
movups xmm0, xmmword [edi]
add edi, edx
movups xmmword [ebp], xmm0
add ebp, edx
movups xmm0, xmmword [edi]
add edi, edx
movups xmmword [ebp], xmm0
add ebp, edx
cmp ebp, ecx
jb 0x4cd950
jmp 0x4cdbde
mov ecx, dword [esp + 0x20]
push dword [esp + 0x3c]
mov esi, dword [esp + 0x50]
lea eax, [esp + 0x30]
push dword [esp + 0x44]
push dword [esp + 0x2c]
push dword [esp + 0x44]
push eax
sub esp, 0xc
mov edi, esp
push ecx
push dword [esp + 0x4c]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
mov esi, dword [esp + 0x40]
push esi
call fcn.004d01b6
add esp, 0x2c
jmp 0x4cdc16
mov esi, ebx
lea edi, [esp + 0xfc]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
mov eax, dword [esp + 0xfc]
mov esi, dword [esp + 0x18]
mov edx, dword [esp + 0x100]
lea ebp, [eax + esi]
lea ebx, [edx + eax]
mov edi, ebp
add eax, dword [esp + 0x1c]
sub edi, dword [esp + 0x104]
mov dword [esp + 0x54], eax
cmp eax, dword [esp + 0x38]
ja 0x4cdbe4
mov eax, dword [esp + 0x28]
lea ecx, [ebx + esi]
add eax, 0xffffffe0
cmp ecx, eax
ja 0x4cdbe4
mov ecx, dword [esp + 0x28]
lea eax, [ebx + 0x20]
sub ecx, esi
cmp ecx, eax
jb 0x4cdbe4
mov ecx, dword [esp + 0x1c]
mov eax, dword [esp + 0xfc]
movups xmm0, xmmword [ecx]
movups xmmword [esi], xmm0
cmp eax, 0x10
jbe 0x4cda71
add ecx, 0x10
add eax, 0xfffffff0
mov dword [esp + 0x4c], ecx
lea ecx, [esi + 0x10]
lea edx, [ecx + eax]
mov dword [esp + 0x20], edx
mov edx, dword [esp + 0x4c]
movups xmm0, xmmword [edx]
mov edx, dword [esp + 0x100]
movups xmmword [ecx], xmm0
cmp eax, 0x10
jle 0x4cda71
mov eax, dword [esp + 0x4c]
add ecx, 0x10
add eax, 0x10
movups xmm0, xmmword [eax]
lea eax, [eax + 0x20]
movups xmmword [ecx], xmm0
movups xmm0, xmmword [eax - 0x10]
movups xmmword [ecx + 0x10], xmm0
add ecx, 0x20
cmp ecx, dword [esp + 0x20]
jb 0x4cda57
mov eax, dword [esp + 0x54]
mov ecx, dword [esp + 0x104]
mov dword [esp + 0x1c], eax
mov dword [esp + 0x2c], eax
mov eax, ebp
sub eax, dword [esp + 0x24]
cmp ecx, eax
jbe 0x4cdaf3
mov eax, ebp
sub eax, dword [esp + 0x40]
cmp ecx, eax
jbe 0x4cdaa0
push 0xffffffffffffffec
pop ebx
jmp 0x4cdc20
mov ecx, dword [esp + 0x3c]
mov eax, ecx
sub eax, dword [esp + 0x24]
add edi, eax
lea eax, [edi + edx]
cmp eax, ecx
ja 0x4cdac3
push edx
push edi
push ebp
call fcn.004e5010
add esp, 0xc
jmp 0x4cdc20
mov esi, ecx
sub esi, edi
push esi
push edi
push ebp
call fcn.004e5010
mov edx, dword [esp + 0x10c]
add ebp, esi
mov edi, dword [esp + 0x30]
add esp, 0xc
mov ecx, dword [esp + 0x104]
sub edx, esi
mov esi, dword [esp + 0x18]
mov dword [esp + 0x100], edx
cmp ecx, 0x10
jb 0x4cdb33
lea eax, [edx + ebp]
movups xmm0, xmmword [edi]
movups xmmword [ebp], xmm0
cmp edx, 0x10
jle 0x4cdc20
push 0x10
add ebp, 0x10
add edi, 0x10
pop edx
movups xmm0, xmmword [edi]
add edi, edx
movups xmmword [ebp], xmm0
add ebp, edx
movups xmm0, xmmword [edi]
add edi, edx
movups xmmword [ebp], xmm0
add ebp, edx
cmp ebp, eax
jb 0x4cdb14
jmp 0x4cdc20
cmp ecx, 8
jae 0x4cdb70
mov al, byte [edi]
mov esi, dword [ecx*4 + 0x530fa8]
mov byte [ebp], al
mov al, byte [edi + 1]
mov byte [ebp + 1], al
mov al, byte [edi + 2]
mov byte [ebp + 2], al
mov al, byte [edi + 3]
add edi, dword [ecx*4 + 0x530f88]
push 4
mov byte [ebp + 3], al
lea eax, [ebp + 4]
push edi
push eax
call fcn.004e4a90
add esp, 0xc
sub edi, esi
jmp 0x4cdb79
push edi
push ebp
call fcn.004cb2b4
pop ecx
pop ecx
mov eax, dword [esp + 0x100]
cmp eax, 8
jbe 0x4cdbde
add ebp, 8
lea ecx, [eax - 8]
add edi, 8
mov eax, ebp
push 0x10
sub eax, edi
pop edx
lea esi, [ecx + ebp]
cmp eax, edx
jge 0x4cdbb3
sub edi, ebp
lea eax, [edi + ebp]
push eax
push ebp
call fcn.004cb2b4
add ebp, 8
pop ecx
pop ecx
cmp ebp, esi
jb 0x4cdb9e
jmp 0x4cdbde
movups xmm0, xmmword [edi]
movups xmmword [ebp], xmm0
cmp ecx, edx
jle 0x4cdbde
add ebp, 0x10
add edi, 0x10
movups xmm0, xmmword [edi]
add edi, edx
movups xmmword [ebp], xmm0
add ebp, edx
movups xmm0, xmmword [edi]
add edi, edx
movups xmmword [ebp], xmm0
add ebp, edx
cmp ebp, esi
jb 0x4cdbc4
mov esi, dword [esp + 0x18]
jmp 0x4cdc20
push dword [esp + 0x3c]
mov esi, dword [esp + 0x50]
lea eax, [esp + 0x30]
push dword [esp + 0x44]
push dword [esp + 0x2c]
push dword [esp + 0x44]
push eax
sub esp, 0xc
mov edi, esp
push dword [esp + 0x48]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
mov esi, dword [esp + 0x3c]
push esi
call fcn.004d00d1
add esp, 0x28
mov ebx, eax
mov eax, dword [esp + 0x2c]
mov dword [esp + 0x1c], eax
cmp ebx, 0xffffff88
ja 0x4cdcc6
add esi, ebx
mov dword [esp + 0x18], esi
mov esi, dword [esp + 0x50]
inc esi
cmp esi, dword [esp + 0x1bc]
mov dword [esp + 0x50], esi
jl 0x4cd482
mov edi, dword [esp + 0xdc]
lea esi, [esp + 0x134]
mov ebx, dword [esp + 0x18]
mov ecx, dword [esp + 0x1c]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
mov edi, dword [esp + 0x58]
mov esi, dword [esp + 0x38]
mov edx, dword [edi + 0x7610]
cmp edx, 2
jne 0x4cdc9e
mov eax, dword [esp + 0x28]
sub esi, ecx
sub eax, ebx
cmp esi, eax
ja 0x4cd45a
test ebx, ebx
je 0x4cdc92
push esi
push ecx
push ebx
call fcn.004e5010
add esp, 0xc
add ebx, esi
lea ecx, [edi + 0x7614]
lea esi, [edi + 0x17614]
mov eax, dword [esp + 0x28]
sub esi, ecx
sub eax, ebx
cmp esi, eax
ja 0x4cd45a
test ebx, ebx
je 0x4cdcbf
push esi
push ecx
push ebx
call fcn.004e5010
add esp, 0xc
add ebx, esi
sub ebx, dword [esp + 0x90]
mov ecx, dword [esp + 0x1a0]
mov eax, ebx
pop edi
pop esi
pop ebp
pop ebx
xor ecx, esp
call fcn.004e3fdc
add esp, 0x194
ret