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

Disassembly:
push ebp
push ebx
push edi
push esi
sub esp, 0x1b4
mov ebx, edx
mov esi, ecx
cmp edx, 0x21
jae 0x478f6f
cmp ebx, 2
jb 0x47955f
mov ecx, ebx
mov edx, ebx
mov dword [esp + 0x38], esi
mov dword [esp + 0x68], esi
mov dword [esp + 0x80], ebx
shr ecx, 1
cmp ebx, 0x12
mov ebp, ecx
lea eax, [esi + ecx*8]
mov dword [esp + 0xb0], ecx
cmovb ebp, ebx
sub edx, ecx
mov dword [esp + 0x94], eax
mov dword [esp + 0xac], edx
nop word [eax + eax]
cmp ebp, 0xc
jbe 0x4785d0
mov dword [esp + 0x90], ebp
mov ebp, dword [esp + 0x38]
xor edx, edx
mov eax, dword [ebp + 0x64]
mov edi, dword [ebp + 0x60]
mov ecx, dword [ebp]
lea esi, [ebp + 0x60]
mov dword [esp + 0x60], esi
cmp eax, dword [ebp + 4]
mov eax, dword [ebp + 8]
setb dl
xor ebx, ebx
cmp edi, ecx
setb bl
cmove ebx, edx
mov edx, ebp
test bl, bl
cmovne edi, ecx
mov ecx, esi
cmovne edx, esi
cmovne ecx, ebp
movsd xmm0, qword [edx]
xor edx, edx
mov dword [esp + 0x6c], edi
mov ecx, dword [ecx + 4]
movsd qword [ebp], xmm0
mov dword [ebp + 0x60], edi
mov dword [ebp + 0x64], ecx
mov dword [esp + 0x84], ecx
mov ecx, dword [ebp + 0x54]
mov esi, dword [ebp + 0x50]
cmp ecx, dword [ebp + 0xc]
setb dl
xor ecx, ecx
cmp esi, eax
setb cl
cmove ecx, edx
lea edx, [ebp + 8]
test cl, cl
lea ecx, [ebp + 0x50]
mov dword [esp + 0x30], edx
cmovne esi, eax
mov eax, ecx
mov dword [esp + 0xc], ecx
cmovne eax, edx
mov dword [esp + 0x40], esi
mov edi, dword [eax + 4]
mov eax, edx
cmovne eax, ecx
mov ecx, dword [eax]
mov eax, dword [eax + 4]
mov dword [esp + 0x3c], edi
mov dword [ebp + 0xc], eax
mov dword [ebp + 8], ecx
mov dword [ebp + 0x50], esi
mov dword [ebp + 0x54], edi
mov dword [esp + 0x28], eax
mov dword [esp + 0x14], ecx
xor ecx, ecx
mov eax, dword [ebp + 0x4c]
mov esi, dword [ebp + 0x48]
cmp eax, dword [ebp + 0x14]
mov eax, dword [ebp + 0x10]
setb cl
xor edx, edx
cmp esi, eax
setb dl
cmove edx, ecx
lea ecx, [ebp + 0x48]
test dl, dl
lea edx, [ebp + 0x10]
mov dword [esp + 0x5c], ecx
cmovne esi, eax
mov eax, ecx
mov dword [esp + 0x58], edx
cmovne eax, edx
mov dword [esp + 0x50], esi
mov edi, dword [eax + 4]
mov eax, edx
cmovne eax, ecx
xor ebx, ebx
mov ecx, dword [eax]
mov eax, dword [eax + 4]
mov dword [esp + 0x7c], edi
mov dword [ebp + 0x14], eax
mov dword [ebp + 0x10], ecx
mov dword [ebp + 0x48], esi
mov dword [ebp + 0x4c], edi
mov dword [esp + 8], eax
mov dword [esp + 0x20], ecx
mov eax, dword [ebp + 0x3c]
mov edx, dword [ebp + 0x38]
mov ecx, dword [ebp + 0x18]
cmp eax, dword [ebp + 0x1c]
mov esi, edx
setb bl
xor eax, eax
cmp edx, ecx
lea edx, [ebp + 0x18]
setb al
mov dword [esp + 0x48], edx
cmove eax, ebx
test al, al
movzx eax, al
cmovne esi, ecx
lea ecx, [ebp + 0x38]
mov dword [esp + 0x44], ecx
cmovne ecx, edx
shl eax, 5
xor ebx, ebx
mov dword [esp + 0x1c], esi
mov edx, dword [ebp + eax + 0x18]
mov ecx, dword [ecx + 4]
mov eax, dword [ebp + eax + 0x1c]
mov dword [ebp + 0x1c], eax
mov dword [ebp + 0x18], edx
mov dword [ebp + 0x38], esi
mov dword [ebp + 0x3c], ecx
mov dword [esp + 0x4c], eax
mov dword [esp + 0x74], edx
mov dword [esp + 0x78], ecx
mov eax, dword [ebp + 0x5c]
mov edx, dword [ebp + 0x58]
cmp eax, dword [ebp + 0x2c]
mov eax, dword [ebp + 0x28]
mov esi, edx
setb bl
xor ecx, ecx
cmp edx, eax
lea edx, [ebp + 0x58]
setb cl
mov dword [esp + 0x10], edx
cmove ecx, ebx
test cl, cl
lea ecx, [ebp + 0x28]
cmovne esi, eax
mov eax, edx
mov dword [esp + 0x64], ecx
cmovne eax, ecx
mov dword [esp + 4], esi
mov edi, dword [eax + 4]
mov eax, ecx
cmovne eax, edx
mov ecx, dword [eax]
mov eax, dword [eax + 4]
mov dword [esp + 0x70], edi
mov dword [ebp + 0x28], ecx
mov dword [ebp + 0x2c], eax
mov dword [ebp + 0x58], esi
mov dword [ebp + 0x5c], edi
xor ecx, ecx
mov esi, dword [esp + 0x14]
mov eax, dword [ebp + 0x44]
mov edi, dword [ebp + 0x30]
mov edx, dword [ebp + 0x40]
cmp eax, dword [ebp + 0x34]
setb cl
xor eax, eax
cmp edx, edi
setb al
cmove eax, ecx
lea ecx, [ebp + 0x30]
test al, al
movzx eax, al
mov dword [esp + 0x18], ecx
cmovne edx, edi
lea edi, [ebp + 0x40]
mov dword [esp + 0x54], edi
cmovne edi, ecx
shl eax, 4
mov dword [esp], edx
xor ecx, ecx
mov ebx, dword [eax + ebp + 0x34]
mov edx, dword [eax + ebp + 0x30]
cmp ebx, dword [esp + 0x28]
setb cl
xor eax, eax
cmp edx, esi
setb al
cmove eax, ecx
mov ecx, edx
test al, al
mov eax, dword [edi + 4]
mov edi, dword [esp + 0x18]
mov dword [ebp + 0x30], edx
mov dword [ebp + 0x34], ebx
cmovne ecx, esi
cmovne esi, edx
mov edx, dword [esp + 0x28]
mov dword [esp + 0x34], ecx
mov ecx, dword [esp + 0x4c]
mov dword [esp + 0x14], esi
mov esi, dword [esp + 0x74]
mov dword [esp + 0x24], eax
cmovne edi, dword [esp + 0x30]
cmovne edx, ebx
xor eax, eax
mov ebx, dword [esp + 0x20]
cmp ecx, dword [esp + 8]
mov dword [esp + 0x28], edx
setb al
xor ecx, ecx
cmp esi, ebx
setb cl
cmove ecx, eax
mov eax, ebx
test cl, cl
mov ecx, esi
cmovne eax, esi
cmovne ecx, ebx
mov esi, eax
mov dword [esp + 0x20], eax
mov eax, dword [esp]
mov ebx, ecx
mov dword [esp + 0x2c], ecx
mov ecx, dword [esp + 8]
mov dword [ebp + 0x40], eax
mov eax, dword [esp + 0x24]
cmovne ecx, dword [esp + 0x4c]
mov dword [ebp + 0x44], eax
mov eax, dword [esp + 0x14]
mov dword [esp + 8], ecx
mov edi, dword [edi + 4]
mov dword [ebp + 0xc], edx
mov dword [ebp + 8], eax
mov eax, dword [esp + 0x34]
mov dword [esp + 0x74], edi
mov dword [ebp + 0x30], eax
mov eax, dword [esp + 0x48]
mov dword [ebp + 0x34], edi
lea edi, [ebp + 0x20]
mov dword [esp + 0x4c], edi
cmovne eax, dword [esp + 0x58]
mov eax, dword [eax + 4]
mov dword [ebp + 0x14], ecx
mov ecx, dword [esp + 0x70]
mov dword [ebp + 0x10], esi
mov dword [ebp + 0x18], ebx
mov esi, dword [esp + 4]
mov ebx, dword [esp + 0x10]
mov dword [ebp + 0x1c], eax
mov dword [esp + 0x8c], eax
xor eax, eax
cmp ecx, dword [ebp + 0x24]
mov edx, dword [ebp + 0x20]
setb al
xor ecx, ecx
cmp esi, edx
setb cl
cmove ecx, eax
mov eax, ebx
test cl, cl
mov ecx, dword [esp + 0x1c]
cmovne eax, edi
cmovne esi, edx
cmovne edi, ebx
xor ebx, ebx
mov edx, dword [esp + 0x50]
mov dword [esp + 0x70], eax
mov eax, dword [esp + 0x78]
mov dword [esp + 0x88], edi
mov edi, dword [esp + 0x5c]
mov dword [esp + 4], esi
mov esi, dword [esp + 0x40]
cmp dword [esp + 0x7c], eax
setb bl
xor eax, eax
cmp edx, ecx
setb al
cmovne ebx, eax
mov eax, dword [esp + 0x24]
test bl, bl
movzx ebx, bl
cmove ecx, edx
cmovne edi, dword [esp + 0x44]
shl ebx, 4
xor edx, edx
mov dword [esp + 0x1c], ecx
cmp dword [esp + 0x3c], eax
mov eax, dword [esp]
setb dl
xor ecx, ecx
cmp esi, eax
setb cl
cmovne edx, ecx
test dl, dl
movzx edx, dl
cmove eax, esi
mov dword [esp], eax
mov eax, dword [esp + 0x70]
mov ecx, dword [eax + 4]
mov eax, dword [esp + 0x88]
mov esi, dword [eax]
mov eax, dword [eax + 4]
mov dword [esp + 0x7c], ecx
mov dword [esp + 0x3c], eax
mov dword [ebp + 0x24], eax
mov eax, dword [esp + 4]
mov dword [ebp + 0x20], esi
mov dword [ebp + 0x58], eax
mov dword [ebp + 0x5c], ecx
mov eax, dword [ebx + ebp + 0x3c]
mov ecx, dword [edi + 4]
mov edi, dword [ebx + ebp + 0x38]
mov dword [esp + 0x40], eax
mov dword [ebp + 0x3c], eax
mov eax, dword [esp + 0x1c]
mov dword [ebp + 0x38], edi
mov dword [esp + 0x78], ecx
mov dword [esp + 0x24], edi
mov dword [ebp + 0x48], eax
mov eax, dword [esp + 0xc]
mov dword [ebp + 0x4c], ecx
cmovne eax, dword [esp + 0x54]
shl edx, 4
mov edi, dword [ebp + edx + 0x40]
mov ecx, dword [eax + 4]
mov eax, dword [ebp + edx + 0x44]
xor edx, edx
mov dword [ebp + 0x40], edi
mov dword [esp + 0xa0], edi
mov edi, dword [esp + 0x3c]
mov dword [esp + 0x98], eax
mov dword [ebp + 0x44], eax
mov eax, dword [esp]
mov dword [esp + 0xa8], ecx
mov dword [ebp + 0x50], eax
mov dword [ebp + 0x54], ecx
mov eax, dword [ebp + 4]
mov ecx, dword [ebp]
cmp eax, edi
seta dl
xor ebx, ebx
cmp ecx, esi
seta bl
cmove ebx, edx
test bl, bl
mov ebx, dword [esp + 0x28]
cmovne eax, edi
mov edi, dword [esp + 8]
mov dword [esp + 0x70], eax
mov eax, esi
cmovne eax, ecx
cmovne ecx, esi
mov esi, dword [esp + 0x14]
mov dword [esp + 0x50], eax
mov eax, dword [esp + 0x4c]
mov dword [esp + 0x88], ecx
cmovne eax, ebp
xor ecx, ecx
cmp edi, ebx
mov dword [esp + 0xa4], eax
mov eax, dword [esp + 0x20]
setb cl
xor edx, edx
cmp eax, esi
setb dl
cmove edx, ecx
mov ecx, eax
test dl, dl
mov edx, dword [esp + 0x8c]
cmove eax, esi
cmovne ecx, esi
cmove edi, ebx
mov ebx, dword [esp + 0x34]
mov esi, dword [esp + 0x40]
mov dword [esp + 0x20], eax
mov eax, dword [esp + 0x58]
mov dword [esp + 0x3c], ecx
mov dword [esp + 8], edi
mov edi, dword [esp + 0x98]
cmovne eax, dword [esp + 0x30]
xor ecx, ecx
cmp dword [esp + 0x74], edx
mov dword [esp + 0x9c], eax
mov eax, dword [esp + 0x2c]
setb cl
xor edx, edx
cmp ebx, eax
setb dl
cmovne ecx, edx
test cl, cl
mov ecx, dword [esp + 0x48]
cmove eax, ebx
mov ebx, dword [esp + 0xa0]
mov dword [esp + 0x2c], eax
mov eax, dword [esp + 0x18]
mov edx, eax
cmovne edx, ecx
cmovne ecx, eax
mov eax, dword [esp + 0x24]
mov dword [esp + 0x28], ecx
xor ecx, ecx
cmp edi, esi
mov dword [esp + 0x34], edx
setb cl
xor edx, edx
cmp ebx, eax
setb dl
cmove edx, ecx
mov ecx, ebx
test dl, dl
mov edx, dword [esp + 0x1c]
cmovne ecx, eax
cmovne eax, ebx
cmovne esi, edi
mov edi, dword [esp + 0x6c]
mov dword [esp + 0x24], eax
mov eax, dword [esp + 0x54]
mov dword [esp + 0x14], ecx
mov ecx, dword [esp]
mov dword [esp + 0x40], esi
mov esi, dword [esp + 4]
cmovne eax, dword [esp + 0x44]
xor ebx, ebx
mov dword [esp + 0x74], eax
mov eax, dword [esp + 0xa8]
cmp eax, dword [esp + 0x78]
setb bl
xor eax, eax
cmp ecx, edx
setb al
cmovne ebx, eax
mov eax, dword [esp + 0xc]
test bl, bl
mov dword [esp + 0x78], ebx
cmovne ecx, edx
mov dword [esp], ecx
cmovne eax, dword [esp + 0x5c]
xor ebx, ebx
mov dword [esp + 0x1c], eax
mov eax, dword [esp + 0x7c]
cmp dword [esp + 0x84], eax
mov eax, dword [esp + 0xa4]
mov edx, dword [eax + 4]
mov eax, dword [esp + 0x88]
setb bl
mov dword [ebp], eax
mov eax, dword [esp + 0x70]
mov dword [ebp + 4], eax
mov eax, dword [esp + 0x50]
mov dword [ebp + 0x20], eax
mov eax, dword [esp + 0x9c]
mov dword [ebp + 0x24], edx
mov ecx, dword [eax + 4]
mov eax, dword [esp + 8]
mov dword [ebp + 0xc], eax
mov eax, dword [esp + 0x20]
mov dword [esp + 0x84], ecx
mov dword [ebp + 8], eax
xor eax, eax
cmp edi, esi
setb al
cmovne ebx, eax
mov eax, dword [esp + 0x3c]
test bl, bl
cmove esi, edi
mov dword [esp + 4], esi
mov esi, dword [esp + 0x50]
mov dword [ebp + 0x10], eax
mov eax, dword [esp + 0x34]
mov dword [ebp + 0x14], ecx
mov edi, dword [eax + 4]
mov eax, dword [esp + 0x60]
cmovne eax, dword [esp + 0x10]
mov dword [esp + 0x20], eax
xor eax, eax
cmp edi, edx
mov edx, dword [esp + 0x2c]
setb al
xor ecx, ecx
cmp edx, esi
setb cl
cmovne eax, ecx
mov ecx, dword [esp + 0x28]
test al, al
mov eax, dword [ecx]
mov ecx, dword [ecx + 4]
mov dword [ebp + 0x1c], ecx
mov ecx, dword [esp + 0x74]
mov dword [ebp + 0x18], eax
mov dword [ebp + 0x30], edx
mov dword [ebp + 0x34], edi
mov eax, edx
cmovne eax, esi
mov dword [esp + 0x2c], eax
mov eax, dword [esp + 0x14]
mov edx, dword [ecx + 4]
mov ecx, dword [esp + 0x40]
mov dword [ebp + 0x3c], ecx
mov ecx, dword [esp + 0x24]
mov dword [esp + 0x6c], edx
mov dword [ebp + 0x38], ecx
mov dword [ebp + 0x40], eax
movzx eax, byte [esp + 0x78]
mov dword [ebp + 0x44], edx
mov ecx, dword [esp + 0x1c]
mov edi, dword [ebp + eax*8 + 0x48]
mov eax, dword [ebp + eax*8 + 0x4c]
mov ecx, dword [ecx + 4]
mov dword [esp + 0x28], eax
mov dword [ebp + 0x4c], eax
mov eax, dword [esp]
mov dword [ebp + 0x48], edi
mov dword [esp + 8], ecx
mov dword [ebp + 0x50], eax
mov eax, dword [esp + 0x20]
mov dword [ebp + 0x54], ecx
movzx ecx, bl
mov esi, dword [ebp + ecx*8 + 0x58]
mov edx, dword [eax + 4]
mov eax, dword [ebp + ecx*8 + 0x5c]
mov dword [esp + 0x24], esi
mov dword [ebp + 0x58], esi
mov esi, dword [esp + 0x18]
mov dword [esp + 0x1c], eax
mov dword [ebp + 0x5c], eax
mov eax, dword [esp + 4]
mov dword [esp + 0x50], edx
mov ecx, esi
mov dword [ebp + 0x60], eax
mov dword [ebp + 0x64], edx
mov edx, dword [esp + 0x4c]
cmovne ecx, edx
mov eax, dword [ecx + 4]
mov ecx, edx
cmovne ecx, esi
mov esi, dword [esp + 0x28]
mov dword [esp + 0x34], eax
mov edx, dword [ecx]
mov dword [esp + 0x78], edx
mov ecx, dword [ecx + 4]
mov dword [ebp + 0x20], edx
mov dword [esp + 0x74], ecx
mov dword [ebp + 0x24], ecx
mov ecx, dword [esp + 0x2c]
mov dword [ebp + 0x30], ecx
mov dword [ebp + 0x34], eax
xor ecx, ecx
mov eax, dword [ebp + 0x2c]
mov edx, dword [ebp + 0x28]
cmp eax, esi
seta cl
xor ebx, ebx
cmp edx, edi
seta bl
cmove ebx, ecx
mov ecx, dword [esp + 0x5c]
test bl, bl
cmovne eax, esi
mov esi, dword [esp + 0x1c]
mov dword [esp + 0x20], eax
mov eax, edi
cmovne eax, edx
cmovne edx, edi
cmovne ecx, dword [esp + 0x64]
mov edi, dword [esp + 0x14]
mov dword [esp + 0x40], eax
mov eax, edx
mov dword [esp + 0x28], edx
xor edx, edx
cmp dword [esp + 0x6c], esi
mov ecx, dword [ecx + 4]
mov dword [ebp + 0x28], eax
mov eax, dword [esp + 0x40]
seta dl
xor ebx, ebx
cmp edi, dword [esp + 0x24]
mov dword [esp + 0x7c], ecx
seta bl
cmove ebx, edx
mov edx, dword [esp + 0x20]
test bl, bl
mov dword [ebp + 0x2c], edx
mov dword [ebp + 0x48], eax
mov eax, dword [esp + 0x24]
mov dword [ebp + 0x4c], ecx
mov ecx, dword [esp + 0x10]
cmove esi, dword [ebp + 0x44]
cmove edi, eax
cmove eax, dword [ebp + 0x40]
cmovne ecx, dword [esp + 0x54]
xor edx, edx
mov dword [esp + 0x1c], esi
mov dword [esp + 0x14], edi
mov edi, dword [esp + 4]
mov esi, eax
mov dword [esp + 0x24], eax
mov eax, dword [esp + 0x50]
mov ecx, dword [ecx + 4]
mov dword [ebp + 0x40], esi
cmp eax, dword [esp + 8]
mov eax, dword [esp]
mov dword [esp + 0x70], ecx
setb dl
xor ebx, ebx
cmp edi, eax
setb bl
cmovne edx, ebx
test dl, dl
cmovne edi, eax
mov eax, dword [esp + 0x1c]
mov ebx, edi
mov edi, dword [esp + 0x60]
mov dword [ebp + 0x44], eax
mov eax, dword [esp + 0x14]
cmovne edi, dword [esp + 0xc]
mov dword [ebp + 0x58], eax
mov dword [ebp + 0x5c], ecx
movzx ecx, dl
shl ecx, 4
mov edx, dword [edi + 4]
mov esi, dword [ecx + ebp + 0x50]
mov eax, dword [ecx + ebp + 0x54]
mov dword [ebp + 0x50], esi
mov dword [ebp + 0x54], eax
mov dword [ebp + 0x60], ebx
mov dword [ebp + 0x64], edx
mov dword [esp + 4], esi
mov esi, dword [esp + 0x20]
mov dword [esp], eax
mov eax, dword [esp + 0x28]
xor ebx, ebx
mov edi, dword [ebp + 4]
mov edx, dword [ebp]
cmp edi, esi
seta bl
xor ecx, ecx
cmp edx, eax
seta cl
cmove ecx, ebx
mov ebx, eax
test cl, cl
mov ecx, dword [esp + 0x64]
cmove esi, edi
mov edi, eax
cmove ebx, edx
cmovne edi, edx
mov dword [esp + 0x20], esi
mov dword [esp + 0x28], ebx
mov dword [esp + 8], edi
cmovne ecx, ebp
mov eax, dword [ecx + 4]
mov dword [ebp], ebx
mov dword [ebp + 4], esi
mov dword [ebp + 0x28], edi
mov esi, dword [esp + 0x24]
xor ebx, ebx
mov dword [ebp + 0x2c], eax
mov dword [esp + 0x8c], eax
mov eax, dword [esp + 0x1c]
mov edi, dword [ebp + 0x1c]
mov edx, dword [ebp + 0x18]
cmp edi, eax
seta bl
xor ecx, ecx
cmp edx, esi
seta cl
cmove ecx, ebx
mov ebx, eax
mov eax, esi
test cl, cl
mov ecx, dword [esp + 0x54]
cmove eax, edx
cmovne esi, edx
cmove ebx, edi
mov edi, dword [esp + 0x74]
mov edx, eax
mov dword [esp + 0x50], esi
cmovne ecx, dword [esp + 0x48]
mov eax, dword [ecx + 4]
mov dword [ebp + 0x1c], ebx
mov dword [ebp + 0x18], edx
mov dword [ebp + 0x40], esi
mov esi, dword [esp + 0x78]
xor ebx, ebx
mov dword [ebp + 0x44], eax
mov dword [esp + 0x6c], eax
mov eax, dword [ebp + 0x3c]
mov edx, dword [ebp + 0x38]
cmp eax, edi
setb bl
xor ecx, ecx
cmp edx, esi
setb cl
cmove ecx, ebx
test cl, cl
mov ecx, edx
cmovne ecx, esi
cmovne esi, edx
mov edx, edi
mov edi, dword [esp + 0x70]
mov dword [esp + 0x1c], ecx
mov ecx, dword [esp + 0x44]
cmovne edx, eax
cmovne ecx, dword [esp + 0x4c]
xor eax, eax
cmp edi, dword [esp + 0x34]
mov edi, dword [esp + 0x40]
mov ecx, dword [ecx + 4]
mov dword [ebp + 0x24], edx
mov dword [ebp + 0x20], esi
mov edx, dword [esp + 0x14]
mov esi, dword [esp + 0x2c]
setb al
mov dword [esp + 0x34], ecx
xor ecx, ecx
cmp edx, esi
setb cl
cmovne eax, ecx
mov ecx, dword [esp + 0x18]
test al, al
cmovne edx, esi
mov esi, dword [esp]
mov dword [esp + 0x14], edx
mov edx, dword [esp + 0x10]
mov eax, edx
cmovne eax, ecx
cmovne ecx, edx
xor edx, edx
cmp dword [esp + 0x7c], esi
mov esi, dword [esp + 4]
seta dl
xor ebx, ebx
cmp edi, esi
seta bl
cmove ebx, edx
mov edx, dword [esp + 0x1c]
test bl, bl
cmove edi, esi
mov dword [ebp + 0x38], edx
mov edx, dword [esp + 0x34]
mov dword [ebp + 0x3c], edx
mov edx, dword [eax + 4]
mov dword [esp + 0x2c], edx
mov ebx, dword [ecx]
mov dword [esp + 0x74], ebx
mov eax, dword [ecx + 4]
mov dword [ebp + 0x30], ebx
mov ecx, esi
mov dword [esp + 0x40], edi
mov dword [esp + 0x70], eax
mov dword [ebp + 0x34], eax
mov eax, dword [esp + 0x14]
mov dword [ebp + 0x58], eax
mov eax, dword [esp + 0xc]
mov dword [ebp + 0x5c], edx
cmove ecx, dword [ebp + 0x48]
cmovne eax, dword [esp + 0x5c]
mov dword [esp + 4], ecx
mov esi, dword [eax + 4]
mov eax, dword [esp]
mov dword [ebp + 0x48], ecx
mov ecx, dword [esp + 0x20]
cmove eax, dword [ebp + 0x4c]
mov dword [esp + 0x7c], esi
xor ebx, ebx
mov dword [ebp + 0x4c], eax
mov dword [ebp + 0x50], edi
mov dword [ebp + 0x54], esi
mov edi, dword [esp + 0x28]
mov dword [esp], eax
mov esi, dword [ebp + 0xc]
mov edx, dword [ebp + 8]
cmp esi, ecx
setb bl
xor eax, eax
cmp edx, edi
setb al
cmove eax, ebx
mov ebx, dword [esp + 0x3c]
test al, al
mov eax, edx
cmovne eax, edi
cmovne ecx, esi
cmovne edi, edx
mov edx, dword [esp + 8]
mov esi, dword [esp + 0x70]
mov dword [esp + 0x60], eax
mov eax, dword [esp + 0x30]
mov dword [esp + 0x20], ecx
mov dword [esp + 0x28], edi
mov edi, dword [esp + 0x74]
cmovne eax, ebp
xor ecx, ecx
mov dword [esp + 0x78], eax
mov eax, dword [esp + 0x8c]
cmp eax, dword [esp + 0x84]
setb cl
xor eax, eax
cmp edx, ebx
setb al
cmovne ecx, eax
mov eax, dword [esp + 0x64]
test cl, cl
mov ecx, dword [esp + 0x58]
cmovne edx, ebx
mov ebx, dword [esp + 4]
mov dword [esp + 8], edx
mov edx, eax
cmovne edx, ecx
cmovne ecx, eax
xor eax, eax
mov dword [esp + 0x3c], edx
mov edx, dword [esp]
mov dword [esp + 0x84], ecx
cmp edx, esi
setb al
xor ecx, ecx
cmp ebx, edi
setb cl
cmove ecx, eax
mov eax, ebx
test cl, cl
mov ecx, ebx
mov ebx, dword [esp + 0x44]
cmove ecx, edi
cmove edx, esi
mov esi, dword [esp + 0x5c]
cmovne eax, edi
mov edi, dword [esp + 0x50]
mov dword [esp + 4], ecx
mov ecx, dword [esp + 0x34]
mov dword [esp], edx
mov dword [esp + 0x24], eax
mov edx, dword [esp + 0x1c]
cmovne esi, dword [esp + 0x18]
xor eax, eax
cmp dword [esp + 0x6c], ecx
setb al
xor ecx, ecx
cmp edi, edx
setb cl
cmovne eax, ecx
mov ecx, dword [esp + 0x78]
test al, al
mov eax, dword [esp + 0x54]
cmove edx, edi
mov edi, dword [esp + 0x7c]
mov dword [esp + 0x1c], edx
mov edx, eax
cmovne edx, ebx
cmovne ebx, eax
mov eax, dword [ecx + 4]
mov ecx, dword [esp + 0x20]
mov dword [esp + 0x34], edx
xor edx, edx
cmp dword [esp + 0x2c], edi
mov edi, dword [esp + 0x60]
mov dword [ebp + 4], ecx
mov ecx, dword [esp + 0x28]
mov dword [esp + 0x6c], eax
setb dl
mov dword [ebp], ecx
mov dword [ebp + 8], edi
mov dword [ebp + 0xc], eax
mov eax, dword [esp + 0x3c]
mov edi, dword [esp + 0x84]
mov ecx, dword [eax + 4]
mov dword [esp + 0x50], ecx
mov eax, dword [edi]
mov dword [esp + 0x2c], eax
mov edi, dword [edi + 4]
mov dword [ebp + 0x10], eax
mov eax, dword [esp + 0x34]
mov dword [esp + 0x3c], edi
mov dword [ebp + 0x14], edi
mov edi, dword [esp + 8]
mov dword [ebp + 0x28], edi
mov dword [ebp + 0x2c], ecx
mov edi, dword [esi + 4]
mov esi, dword [esp]
mov dword [ebp + 0x34], esi
mov esi, dword [esp + 4]
mov dword [esp + 0x20], edi
mov dword [ebp + 0x30], esi
mov esi, dword [esp + 0x24]
mov dword [ebp + 0x48], esi
mov dword [ebp + 0x4c], edi
mov edi, dword [esp + 0x40]
mov eax, dword [eax + 4]
mov dword [esp + 0x34], eax
mov eax, dword [esp + 0x1c]
mov esi, dword [ebx]
mov ecx, dword [ebx + 4]
mov ebx, dword [esp + 0x2c]
mov dword [ebp + 0x38], esi
mov esi, dword [esp + 0x14]
mov dword [ebp + 0x3c], ecx
xor ecx, ecx
mov dword [ebp + 0x40], eax
mov eax, dword [esp + 0x34]
cmp esi, edi
mov dword [ebp + 0x44], eax
setb cl
cmovne edx, ecx
mov ecx, dword [esp + 0xc]
test dl, dl
mov edx, dword [esp + 0x10]
cmove edi, esi
mov eax, edx
cmove edx, ecx
mov esi, dword [edx]
cmovne eax, ecx
mov eax, dword [eax + 4]
mov dword [esp + 0x28], esi
mov ecx, dword [edx + 4]
mov dword [ebp + 0x50], esi
mov esi, dword [esp + 0x60]
mov edx, dword [esp + 0x48]
mov dword [ebp + 0x54], ecx
mov dword [esp + 0x10], ecx
mov ecx, dword [esp + 0x6c]
mov dword [ebp + 0x58], edi
mov dword [ebp + 0x5c], eax
xor eax, eax
mov edi, dword [ebp + 0x18]
cmp dword [ebp + 0x1c], ecx
setb al
xor ecx, ecx
cmp edi, esi
setb cl
cmove ecx, eax
mov eax, edx
test cl, cl
mov ecx, dword [esp + 0x30]
cmove esi, edi
mov dword [esp + 0x60], esi
cmovne eax, ecx
mov edi, dword [eax + 4]
mov eax, ecx
cmovne eax, edx
mov dword [esp + 0x40], edi
mov ecx, dword [eax]
mov dword [esp + 0x6c], ecx
mov eax, dword [eax + 4]
mov dword [ebp + 8], ecx
mov dword [ebp + 0xc], eax
mov dword [ebp + 0x18], esi
mov dword [ebp + 0x1c], edi
mov esi, dword [esp + 0x3c]
mov dword [esp + 0x84], eax
xor eax, eax
mov edi, dword [ebp + 0x24]
mov edx, dword [ebp + 0x20]
cmp edi, esi
setb al
xor ecx, ecx
cmp edx, ebx
setb cl
cmove ecx, eax
mov eax, edx
test cl, cl
mov ecx, ebx
cmovne eax, ebx
cmovne esi, edi
mov edi, dword [esp + 0x4c]
cmovne ecx, edx
mov edx, dword [esp + 8]
mov dword [esp + 0x14], eax
mov eax, dword [esp]
mov dword [esp + 0x2c], ecx
mov ebx, esi
mov dword [esp + 0x3c], esi
mov esi, dword [esp + 4]
cmovne edi, dword [esp + 0x58]
xor ecx, ecx
cmp dword [esp + 0x50], eax
seta cl
xor eax, eax
cmp edx, esi
seta al
cmovne ecx, eax
mov eax, dword [esp + 0x2c]
test cl, cl
mov ecx, dword [edi + 4]
mov dword [ebp + 0x14], ebx
mov edi, dword [esp + 0x18]
mov ebx, dword [esp + 0x28]
cmove edx, esi
mov dword [esp + 8], edx
mov edx, dword [esp + 0x24]
mov dword [ebp + 0x10], eax
mov eax, dword [esp + 0x14]
mov dword [esp + 0x7c], ecx
cmovne edi, dword [esp + 0x64]
mov dword [ebp + 0x20], eax
mov dword [ebp + 0x24], ecx
mov ecx, dword [esp + 0x10]
cmove esi, dword [ebp + 0x28]
mov dword [esp + 4], esi
mov esi, dword [esp]
cmove esi, dword [ebp + 0x2c]
xor eax, eax
cmp dword [esp + 0x20], ecx
seta al
xor ecx, ecx
cmp edx, ebx
mov dword [esp], esi
seta cl
cmove ecx, eax
mov eax, dword [esp + 4]
test cl, cl
mov ecx, dword [edi + 4]
mov dword [ebp + 0x2c], esi
mov edi, dword [esp + 0x3c]
mov esi, dword [esp + 0x84]
cmove edx, ebx
mov dword [esp + 0x24], edx
mov edx, dword [esp + 0x2c]
mov dword [ebp + 0x28], eax
mov eax, dword [esp + 8]
mov dword [esp + 0x50], ecx
mov dword [ebp + 0x30], eax
mov eax, dword [esp + 0xc]
mov dword [ebp + 0x34], ecx
mov ecx, ebx
mov ebx, dword [esp + 0x6c]
cmove ecx, dword [ebp + 0x48]
cmovne eax, dword [esp + 0x5c]
mov dword [esp + 0x28], ecx
mov dword [esp + 0xc], eax
mov eax, dword [esp + 0x10]
cmove eax, dword [ebp + 0x4c]
mov dword [esp + 0x10], eax
xor eax, eax
cmp edi, esi
setb al
xor ecx, ecx
cmp edx, ebx
setb cl
cmove ecx, eax
mov eax, edx
test cl, cl
cmovne eax, ebx
cmove edx, ebx
cmove edi, esi
mov esi, dword [esp + 0xc]
mov dword [esp + 0x20], eax
mov eax, dword [esp + 0x30]
mov dword [esp + 0x2c], edx
mov edx, dword [esp + 0x7c]
mov esi, dword [esi + 4]
cmove eax, dword [esp + 0x58]
xor ecx, ecx
cmp edx, dword [esp + 0x40]
mov edx, dword [esp + 0x10]
mov dword [ebp + 0x4c], edx
mov edx, dword [esp + 0x28]
setb cl
mov dword [ebp + 0x48], edx
mov edx, dword [esp + 0x24]
mov dword [ebp + 0x50], edx
mov dword [ebp + 0x54], esi
mov edx, dword [esp + 0x14]
mov esi, dword [esp + 0x60]
mov ebx, dword [eax + 4]
mov eax, dword [esp + 0x2c]
mov dword [ebp + 0xc], edi
mov dword [ebp + 8], eax
xor eax, eax
cmp edx, esi
mov dword [esp + 0xc], ebx
setb al
cmovne ecx, eax
mov eax, dword [esp + 0x20]
test cl, cl
mov ecx, dword [esp + 0x48]
cmovne edx, esi
mov edi, edx
mov dword [esp + 0x14], edx
mov edx, dword [esp + 0x4c]
mov dword [ebp + 0x10], eax
mov dword [ebp + 0x14], ebx
mov eax, edx
cmovne eax, ecx
mov esi, dword [eax + 4]
mov eax, ecx
cmovne eax, edx
xor ebx, ebx
mov dword [esp + 0x28], esi
mov ecx, dword [eax]
mov dword [esp + 0x10], ecx
mov eax, dword [eax + 4]
mov dword [ebp + 0x18], ecx
mov ecx, dword [esp]
mov dword [ebp + 0x1c], eax
mov dword [ebp + 0x20], edi
mov dword [ebp + 0x24], esi
mov dword [esp + 0x30], eax
mov edi, dword [esp + 4]
mov eax, dword [ebp + 0x3c]
mov edx, dword [ebp + 0x38]
cmp eax, ecx
mov dword [esp + 0x24], eax
mov esi, edx
setb bl
xor eax, eax
cmp edx, edi
setb al
cmove eax, ebx
mov ebx, dword [esp + 0x1c]
test al, al
mov eax, dword [esp + 0x50]
cmovne esi, edi
cmovne ecx, dword [esp + 0x24]
cmovne edi, edx
mov dword [esp + 0x2c], esi
mov esi, dword [esp + 0x44]
mov dword [esp + 4], edi
mov edi, dword [esp + 0x18]
mov dword [esp], ecx
mov ecx, dword [esp + 8]
cmovne esi, dword [esp + 0x64]
xor edx, edx
cmp dword [esp + 0x34], eax
setb dl
xor eax, eax
cmp ebx, ecx
mov esi, dword [esi + 4]
setb al
cmovne edx, eax
mov eax, dword [esp + 0x54]
test dl, dl
cmove ecx, ebx
mov dword [esp + 0x24], esi
mov dword [esp + 8], ecx
mov ecx, dword [esp + 0x20]
mov edx, eax
cmovne edx, edi
cmovne edi, eax
mov eax, dword [esp + 0xc]
xor ebx, ebx
cmp eax, dword [esp + 0x30]
seta bl
xor eax, eax
cmp ecx, dword [esp + 0x10]
seta al
cmove eax, ebx
mov ebx, dword [esp]
test al, al
mov eax, dword [esp + 4]
mov dword [ebp + 0x2c], ebx
mov dword [ebp + 0x28], eax
mov eax, dword [esp + 0x2c]
mov dword [ebp + 0x38], eax
mov dword [ebp + 0x3c], esi
mov edx, dword [edx + 4]
mov dword [esp + 0x1c], edx
mov eax, dword [edi + 4]
mov esi, dword [edi]
mov edi, ebx
mov dword [esp + 0xc], eax
mov dword [ebp + 0x34], eax
mov eax, dword [esp + 8]
mov dword [ebp + 0x30], esi
mov dword [ebp + 0x40], eax
mov dword [ebp + 0x44], edx
mov edx, dword [esp + 0x58]
mov eax, dword [esp + 0x10]
cmove ecx, eax
cmove edx, dword [esp + 0x48]
cmove eax, dword [ebp + 0x10]
mov dword [esp + 0x20], ecx
mov ecx, dword [edx + 4]
mov dword [ebp + 0x10], eax
mov eax, dword [esp + 0x30]
mov edx, dword [esp + 4]
cmove eax, dword [ebp + 0x14]
mov dword [esp + 0x58], ecx
xor ecx, ecx
cmp dword [esp + 0x28], ebx
mov dword [ebp + 0x14], eax
mov eax, dword [esp + 0x14]
seta cl
xor ebx, ebx
cmp eax, edx
seta bl
cmove ebx, ecx
mov ecx, dword [esp + 0x20]
test bl, bl
cmove eax, edx
mov dword [esp + 0x14], eax
mov eax, dword [esp + 0x24]
mov dword [ebp + 0x18], ecx
mov ecx, dword [esp + 0x58]
mov dword [ebp + 0x1c], ecx
mov ecx, dword [esp + 0x64]
cmove edx, dword [ebp + 0x20]
cmove edi, dword [ebp + 0x24]
cmovne ecx, dword [esp + 0x4c]
xor ebx, ebx
cmp eax, dword [esp + 0xc]
mov eax, dword [esp + 0x2c]
mov dword [esp + 4], edx
mov dword [esp], edi
setb bl
xor edx, edx
cmp eax, esi
setb dl
cmove edx, ebx
mov ebx, dword [ecx + 4]
mov ecx, dword [esp + 4]
mov dword [ebp + 0x24], edi
test dl, dl
mov edx, dword [esp + 0x14]
cmovne eax, esi
mov edi, eax
mov eax, dword [esp + 0xc]
mov dword [ebp + 0x20], ecx
mov dword [esp + 0x30], ebx
mov dword [ebp + 0x28], edx
mov edx, dword [esp + 0x44]
mov dword [ebp + 0x2c], ebx
cmovne esi, dword [ebp + 0x38]
cmovne eax, dword [ebp + 0x3c]
cmovne edx, dword [esp + 0x18]
xor ebx, ebx
mov dword [esp + 0xc], eax
mov edx, dword [edx + 4]
mov dword [ebp + 0x34], eax
mov eax, dword [esp + 0x1c]
mov dword [ebp + 0x30], esi
mov dword [ebp + 0x38], edi
mov dword [ebp + 0x3c], edx
cmp dword [ebp + 0x4c], eax
mov edi, dword [ebp + 0x48]
mov eax, dword [esp + 8]
setb bl
xor edx, edx
cmp edi, eax
setb dl
cmove edx, ebx
mov ebx, dword [esp + 0x54]
test dl, dl
cmove eax, edi
mov edi, dword [esp + 0x5c]
mov edx, edi
cmovne edx, ebx
cmovne ebx, edi
mov edi, dword [esp]
movsd xmm0, qword [ebx]
mov edx, dword [edx + 4]
movsd qword [ebp + 0x40], xmm0
mov dword [ebp + 0x48], eax
mov dword [ebp + 0x4c], edx
xor edx, edx
cmp dword [esp + 0x58], edi
mov eax, dword [esp + 0x20]
seta dl
xor ebx, ebx
cmp eax, ecx
seta bl
cmove ebx, edx
mov edx, dword [esp + 0x4c]
test bl, bl
mov ebx, dword [esp + 0xc]
cmove eax, ecx
cmove edi, dword [ebp + 0x1c]
cmove ecx, dword [ebp + 0x18]
cmovne edx, dword [esp + 0x48]
mov edx, dword [edx + 4]
mov dword [ebp + 0x1c], edi
mov dword [ebp + 0x18], ecx
mov dword [ebp + 0x20], eax
mov edi, dword [esp + 0x14]
mov eax, dword [esp + 0x18]
mov dword [ebp + 0x24], edx
xor edx, edx
cmp dword [esp + 0x30], ebx
seta dl
xor ecx, ecx
cmp edi, esi
seta cl
cmove ecx, edx
mov edx, ebx
test cl, cl
cmovne eax, dword [esp + 0x64]
cmove edx, dword [ebp + 0x2c]
mov ecx, dword [eax + 4]
mov dword [ebp + 0x2c], edx
mov edx, edi
cmove edx, esi
cmove esi, dword [ebp + 0x28]
mov dword [ebp + 0x28], esi
mov dword [ebp + 0x30], edx
mov dword [ebp + 0x34], ecx
mov ebp, dword [esp + 0x90]
mov edx, 0xd
jmp 0x478e97
mov edx, 1
cmp ebp, 8
jbe 0x478e97
mov dword [esp + 0x90], ebp
mov ebp, dword [esp + 0x38]
xor edx, edx
mov eax, dword [ebp + 0x1c]
mov edi, dword [ebp + 0x18]
mov ecx, dword [ebp]
lea esi, [ebp + 0x18]
mov dword [esp + 0x4c], esi
cmp eax, dword [ebp + 4]
mov eax, dword [ebp + 8]
setb dl
xor ebx, ebx
cmp edi, ecx
setb bl
cmove ebx, edx
mov edx, ebp
test bl, bl
cmovne edi, ecx
mov ecx, esi
cmovne edx, esi
cmovne ecx, ebp
mov esi, dword [edx]
mov edx, dword [edx + 4]
mov dword [esp + 0x18], edi
mov ecx, dword [ecx + 4]
mov dword [ebp], esi
mov dword [ebp + 4], edx
mov dword [ebp + 0x18], edi
mov dword [esp + 0x10], edx
mov dword [esp + 4], esi
mov dword [ebp + 0x1c], ecx
mov dword [esp + 0x44], ecx
xor ecx, ecx
mov edx, dword [ebp + 0x3c]
mov esi, dword [ebp + 0x38]
cmp edx, dword [ebp + 0xc]
setb cl
xor edx, edx
cmp esi, eax
setb dl
cmove edx, ecx
lea ecx, [ebp + 8]
test dl, dl
mov edx, esi
lea esi, [ebp + 0x38]
mov dword [esp + 0x2c], ecx
cmovne edx, eax
mov eax, ecx
mov dword [esp + 0x58], esi
cmovne eax, esi
mov dword [esp + 0xc], edx
movsd xmm0, qword [eax]
mov eax, esi
cmovne eax, ecx
xor ecx, ecx
mov esi, dword [eax + 4]
movsd qword [ebp + 8], xmm0
mov dword [ebp + 0x38], edx
mov dword [ebp + 0x3c], esi
mov eax, dword [ebp + 0x2c]
mov ebx, dword [ebp + 0x28]
cmp eax, dword [ebp + 0x14]
mov eax, dword [ebp + 0x10]
setb cl
xor edx, edx
cmp ebx, eax
setb dl
cmove edx, ecx
lea ecx, [ebp + 0x28]
test dl, dl
lea edx, [ebp + 0x10]
mov dword [esp + 0x5c], ecx
cmovne ebx, eax
mov eax, ecx
mov dword [esp + 0x64], edx
cmovne eax, edx
mov dword [esp + 0x30], ebx
mov edi, dword [eax + 4]
mov eax, edx
cmovne eax, ecx
xor edx, edx
mov ecx, dword [eax]
mov eax, dword [eax + 4]
mov dword [esp + 0x20], edi
mov dword [ebp + 0x14], eax
mov dword [ebp + 0x10], ecx
mov dword [ebp + 0x28], ebx
mov dword [ebp + 0x2c], edi
mov dword [esp], eax
mov dword [esp + 8], ecx
mov eax, dword [ebp + 0x44]
mov ecx, dword [ebp + 0x20]
mov edi, dword [ebp + 0x40]
cmp eax, dword [ebp + 0x24]
setb dl
xor eax, eax
cmp edi, ecx
setb al
cmove eax, edx
lea edx, [ebp + 0x40]
test al, al
mov dword [esp + 0x54], edx
cmovne edi, ecx
lea ecx, [ebp + 0x20]
cmovne edx, ecx
mov dword [esp + 0x14], ecx
movzx ecx, al
mov dword [esp + 0x48], edi
xor eax, eax
mov edi, dword [esp + 4]
shl ecx, 5
cmp esi, dword [esp + 0x10]
mov esi, dword [esp + 0xc]
mov dword [esp + 0x28], edx
mov ebx, dword [ecx + ebp + 0x24]
setb al
xor edx, edx
cmp esi, edi
setb dl
cmovne eax, edx
test al, al
mov eax, dword [esp + 0x58]
cmovne esi, edi
mov edi, dword [ecx + ebp + 0x20]
mov dword [esp + 0xc], esi
mov esi, dword [esp]
mov ecx, eax
cmovne ecx, ebp
mov dword [esp + 0x10], ecx
mov ecx, ebp
cmovne ecx, eax
xor edx, edx
cmp ebx, esi
mov dword [esp + 0x1c], ecx
mov ecx, dword [esp + 8]
setb dl
xor eax, eax
cmp edi, ecx
setb al
cmove eax, edx
test al, al
mov eax, dword [esp + 0x28]
cmovne esi, ebx
mov dword [esp], esi
mov edx, dword [eax + 4]
mov eax, edi
mov dword [ebp + 0x24], ebx
mov dword [ebp + 0x20], edi
mov ebx, dword [esp + 0x18]
cmovne eax, ecx
cmovne ecx, edi
mov edi, esi
mov esi, dword [esp + 0x48]
mov dword [esp + 4], eax
mov eax, dword [esp + 0x14]
mov dword [esp + 8], ecx
mov dword [ebp + 0x40], esi
mov dword [ebp + 0x44], edx
cmovne eax, dword [esp + 0x64]
xor ecx, ecx
cmp edx, dword [esp + 0x44]
setb cl
xor edx, edx
cmp esi, ebx
setb dl
cmovne ecx, edx
test cl, cl
mov ecx, dword [esp + 0x10]
cmovne esi, ebx
mov dword [esp + 0x48], esi
mov edx, dword [ecx + 4]
mov ecx, dword [esp + 0x1c]
mov ebx, dword [ecx]
mov ecx, dword [ecx + 4]
mov dword [esp + 0x44], edx
mov dword [esp + 0x18], ecx
mov dword [ebp + 4], ecx
mov ecx, dword [esp + 0xc]
mov dword [ebp], ebx
mov dword [esp + 0x24], ebx
mov dword [ebp + 0x38], ecx
mov dword [ebp + 0x3c], edx
mov edx, dword [esp + 0x4c]
mov ecx, dword [eax + 4]
mov dword [ebp + 0x14], edi
mov edi, dword [esp + 8]
mov eax, dword [esp + 4]
mov dword [ebp + 0x10], edi
mov dword [ebp + 0x20], eax
mov dword [esp + 0x60], ecx
mov dword [ebp + 0x24], ecx
mov ecx, dword [esp + 0x54]
mov eax, ecx
cmovne eax, edx
mov ebx, dword [eax + 4]
mov eax, edx
cmovne eax, ecx
mov ecx, dword [eax]
mov eax, dword [eax + 4]
mov dword [esp + 0x1c], ebx
mov dword [esp + 0x3c], ecx
mov dword [ebp + 0x18], ecx
mov ecx, dword [esp + 0x20]
mov dword [ebp + 0x1c], eax
mov dword [ebp + 0x40], esi
mov dword [ebp + 0x44], ebx
mov dword [esp + 0x10], eax
xor eax, eax
lea esi, [ebp + 0x30]
mov edx, dword [ebp + 0x30]
mov dword [esp + 0x20], esi
cmp dword [ebp + 0x34], ecx
mov ecx, dword [esp + 0x30]
setb al
xor ebx, ebx
cmp edx, ecx
setb bl
cmove ebx, eax
test bl, bl
cmovne esi, dword [esp + 0x5c]
cmove ecx, edx
xor edx, edx
mov dword [esp + 0x30], ecx
mov ecx, dword [esp + 0x24]
mov dword [esp + 0x40], esi
mov esi, dword [esp]
cmp esi, dword [esp + 0x18]
setb dl
xor eax, eax
cmp edi, ecx
setb al
cmove eax, edx
test al, al
mov eax, edi
cmove esi, dword [esp + 0x18]
cmovne eax, ecx
cmove edi, ecx
mov edx, eax
mov dword [esp + 0x28], eax
movzx eax, bl
mov dword [esp + 8], edi
mov ebx, dword [esp + 0x10]
mov edi, dword [ebp + eax*8 + 0x28]
mov eax, dword [ebp + eax*8 + 0x2c]
mov ecx, esi
mov esi, dword [esp + 0x40]
mov dword [esp + 0x18], eax
mov dword [esp], edi
mov esi, dword [esi + 4]
mov dword [ebp + 0x2c], eax
mov eax, dword [esp + 0x30]
mov dword [ebp + 0x28], edi
mov dword [ebp + 0x30], eax
mov eax, dword [esp + 0x64]
mov dword [ebp + 0x34], esi
mov dword [esp + 0x40], esi
mov esi, dword [esp + 0x3c]
cmovne eax, ebp
mov eax, dword [eax + 4]
mov dword [ebp + 4], ecx
mov ecx, dword [esp + 8]
mov dword [ebp], ecx
mov dword [ebp + 0x10], edx
mov dword [ebp + 0x14], eax
mov dword [esp + 0x24], eax
xor eax, eax
mov ecx, dword [ebp + 0xc]
mov edi, dword [ebp + 8]
cmp ecx, ebx
seta al
xor edx, edx
cmp edi, esi
seta dl
cmove edx, eax
mov eax, esi
test dl, dl
cmovne ecx, ebx
cmovne eax, edi
cmovne edi, esi
mov esi, dword [esp + 4]
mov ebx, dword [esp]
mov dword [esp + 0x10], ecx
mov dword [esp + 8], eax
mov eax, dword [esp + 0x4c]
mov ecx, dword [esp + 0x18]
mov dword [esp + 0x34], edi
cmovne eax, dword [esp + 0x2c]
xor edx, edx
cmp dword [esp + 0x60], ecx
seta dl
xor ecx, ecx
cmp esi, ebx
mov eax, dword [eax + 4]
mov dword [ebp + 8], edi
mov edi, dword [esp + 0x18]
seta cl
cmove ecx, edx
mov edx, dword [esp + 0x48]
test cl, cl
mov ecx, dword [esp + 0x10]
mov dword [esp + 0x60], eax
cmove esi, ebx
mov dword [esp + 4], esi
mov dword [ebp + 0xc], ecx
mov ecx, dword [esp + 8]
mov dword [ebp + 0x18], ecx
mov dword [ebp + 0x1c], eax
mov eax, dword [esp + 0x5c]
cmove ebx, dword [ebp + 0x20]
cmove edi, dword [ebp + 0x24]
cmovne eax, dword [esp + 0x14]
mov dword [esp], ebx
xor ebx, ebx
mov esi, dword [esp]
mov dword [esp + 0x3c], eax
mov eax, dword [esp + 0x1c]
cmp eax, dword [esp + 0x44]
mov eax, dword [esp + 0xc]
setb bl
xor ecx, ecx
cmp edx, eax
setb cl
cmovne ebx, ecx
test bl, bl
mov dword [esp + 0x1c], ebx
cmovne edx, eax
mov eax, dword [esp + 0x54]
mov dword [esp + 0x48], edx
cmovne eax, dword [esp + 0x58]
xor ecx, ecx
cmp edi, dword [esp + 0x10]
mov dword [esp + 0xc], eax
mov eax, dword [esp + 0x34]
setb cl
xor edx, edx
cmp esi, eax
setb dl
cmove edx, ecx
mov ecx, dword [esp + 0x3c]
test dl, dl
mov ebx, dword [ecx + 4]
mov ecx, esi
mov dword [ebp + 0x20], esi
cmove esi, eax
mov dword [ebp + 0x24], edi
cmove edi, dword [esp + 0x10]
cmovne ecx, eax
mov eax, dword [esp + 0x14]
mov dword [esp], esi
mov esi, dword [esp + 8]
mov dword [esp + 0x44], ecx
mov dword [esp + 0x18], edi
movzx edi, byte [esp + 0x1c]
cmovne eax, dword [esp + 0x2c]
xor ecx, ecx
mov dword [esp + 0x10], eax
mov eax, dword [esp + 0x60]
cmp dword [esp + 0x40], eax
mov eax, dword [esp + 0x30]
setb cl
xor edx, edx
cmp eax, esi
setb dl
cmovne ecx, edx
mov edx, dword [esp + 0x4c]
test cl, cl
mov ecx, dword [esp + 0x20]
cmove esi, eax
mov dword [esp + 8], esi
mov esi, dword [esp + 4]
mov eax, ecx
cmovne eax, edx
cmovne edx, ecx
xor ecx, ecx
mov dword [ebp + 0x28], esi
mov dword [ebp + 0x2c], ebx
mov dword [esp + 0x1c], eax
mov eax, dword [ebp + edi*8 + 0x3c]
mov edi, dword [ebp + edi*8 + 0x38]
cmp ebx, eax
mov ebx, eax
seta cl
xor eax, eax
cmp esi, edi
seta al
cmove eax, ecx
test al, al
mov eax, dword [esp + 0xc]
mov ecx, dword [eax + 4]
mov eax, dword [esp + 0x48]
mov dword [ebp + 0x38], edi
mov dword [ebp + 0x3c], ebx
mov dword [ebp + 0x40], eax
mov eax, dword [esp + 0x10]
mov dword [ebp + 0x44], ecx
mov dword [esp + 0x60], ecx
mov ecx, dword [eax + 4]
mov eax, dword [esp + 0x18]
mov dword [ebp + 0xc], eax
mov eax, dword [esp]
mov dword [esp + 0x30], ecx
mov dword [ebp + 8], eax
mov eax, dword [esp + 0x44]
mov dword [ebp + 0x20], eax
mov eax, dword [esp + 0x1c]
mov dword [ebp + 0x24], ecx
mov esi, dword [edx]
mov ecx, dword [eax + 4]
mov eax, dword [edx + 4]
mov edx, ebx
mov ebx, dword [esp + 0x18]
mov dword [ebp + 0x18], esi
mov dword [esp + 0x10], esi
mov esi, dword [esp]
mov dword [esp + 0x34], eax
mov dword [ebp + 0x1c], eax
mov eax, dword [esp + 8]
mov dword [esp + 0x3c], ecx
mov dword [ebp + 0x30], eax
mov eax, dword [esp + 0x58]
mov dword [ebp + 0x34], ecx
mov ecx, dword [esp + 4]
cmove edx, dword [ebp + 0x2c]
cmovne eax, dword [esp + 0x5c]
cmove ecx, edi
cmove edi, dword [ebp + 0x28]
mov dword [esp + 4], ecx
mov dword [esp + 0xc], edx
mov eax, dword [eax + 4]
mov dword [ebp + 0x2c], edx
mov dword [ebp + 0x28], edi
mov dword [ebp + 0x38], ecx
xor edx, edx
mov dword [ebp + 0x3c], eax
mov dword [esp + 0x40], eax
mov eax, dword [ebp + 4]
mov ecx, dword [ebp]
cmp eax, ebx
mov dword [esp + 0x50], eax
seta dl
xor eax, eax
cmp ecx, esi
seta al
cmove eax, edx
mov edx, dword [esp + 0x44]
test al, al
mov eax, esi
cmovne eax, ecx
cmove esi, ecx
cmove ebx, dword [esp + 0x50]
mov ecx, dword [esp + 0x30]
mov dword [esp + 0x1c], eax
mov eax, dword [esp + 0x2c]
mov dword [esp], esi
mov esi, dword [esp + 0x34]
mov dword [esp + 0x18], ebx
mov ebx, dword [esp + 0x28]
cmovne eax, ebp
mov dword [esp + 0x50], eax
xor eax, eax
cmp ecx, dword [esp + 0x24]
setb al
xor ecx, ecx
cmp edx, ebx
setb cl
cmovne eax, ecx
mov ecx, dword [esp + 0x14]
test al, al
mov eax, dword [esp + 0x64]
cmovne edx, ebx
mov ebx, dword [esp + 0xc]
mov dword [esp + 0x44], edx
mov edx, ecx
cmovne edx, eax
cmovne eax, ecx
xor ecx, ecx
mov dword [esp + 0x6c], eax
mov eax, dword [esp + 0x10]
cmp ebx, esi
mov dword [esp + 0x24], edx
setb cl
xor edx, edx
cmp edi, eax
setb dl
cmove edx, ecx
mov ecx, edi
test dl, dl
mov edx, dword [esp + 0x3c]
cmovne ecx, eax
cmove edi, eax
mov eax, dword [esp + 0x5c]
cmove ebx, esi
mov dword [esp + 0xc], ebx
mov dword [esp + 0x10], edi
mov dword [esp + 0x30], ecx
mov edi, dword [esp + 0x48]
cmovne eax, dword [esp + 0x4c]
xor ecx, ecx
cmp dword [esp + 0x60], edx
mov dword [esp + 0x34], eax
mov eax, dword [esp + 0x50]
setb cl
xor edx, edx
mov ebx, dword [eax + 4]
mov eax, dword [esp + 0x18]
mov dword [ebp + 4], eax
mov eax, dword [esp]
mov dword [esp + 0x28], ebx
mov dword [ebp], eax
mov eax, dword [esp + 8]
cmp edi, eax
setb dl
cmovne ecx, edx
mov edx, dword [esp + 0x1c]
test cl, cl
cmove eax, edi
mov dword [esp + 8], eax
mov eax, dword [esp + 0x6c]
mov dword [ebp + 8], edx
mov dword [ebp + 0xc], ebx
mov esi, dword [eax]
mov ebx, dword [eax + 4]
mov eax, dword [esp + 0x54]
cmovne eax, dword [esp + 0x20]
xor edx, edx
mov dword [esp + 0x54], eax
movzx eax, cl
mov ecx, dword [esp + 0x10]
shl eax, 4
cmp dword [esp + 0xc], ebx
mov dword [esp + 0x18], eax
setb dl
xor eax, eax
cmp ecx, esi
setb al
cmove eax, edx
test al, al
mov eax, dword [esp + 0x24]
mov edx, dword [eax + 4]
mov eax, dword [esp + 0x44]
mov dword [ebp + 0x10], esi
mov dword [ebp + 0x14], ebx
mov dword [ebp + 0x20], eax
mov eax, dword [esp + 0x34]
mov dword [ebp + 0x24], edx
mov edi, dword [eax + 4]
mov eax, ecx
mov dword [ebp + 0x18], ecx
cmove ecx, esi
cmovne eax, esi
mov dword [esp + 0x10], ecx
mov ecx, dword [esp + 0x18]
mov dword [esp + 0x48], eax
mov eax, dword [esp + 0xc]
mov dword [ebp + 0x1c], eax
cmove eax, ebx
mov ebx, dword [esp + 0x30]
mov dword [esp + 0xc], eax
mov eax, dword [esp + 0x4c]
mov dword [ebp + 0x28], ebx
mov dword [ebp + 0x2c], edi
cmovne eax, dword [esp + 0x64]
mov esi, dword [ecx + ebp + 0x34]
mov dword [esp + 0x24], eax
xor eax, eax
cmp edi, edx
mov edx, dword [esp + 0x54]
mov dword [esp + 0x18], esi
setb al
mov edi, dword [edx + 4]
mov edx, dword [ecx + ebp + 0x30]
mov ecx, dword [esp + 8]
mov dword [ebp + 0x34], esi
mov dword [ebp + 0x30], edx
mov dword [esp], edx
mov edx, dword [esp + 0x44]
mov dword [ebp + 0x40], ecx
xor ecx, ecx
mov dword [ebp + 0x44], edi
mov edi, dword [esp + 0x14]
cmp ebx, edx
setb cl
cmovne eax, ecx
test al, al
mov eax, dword [esp + 0x5c]
cmovne ebx, edx
mov edx, dword [esp + 4]
mov dword [esp + 0x30], ebx
mov ecx, eax
cmovne ecx, edi
cmovne edi, eax
xor eax, eax
cmp dword [esp + 0x40], esi
mov esi, dword [esp + 0x10]
setb al
xor ebx, ebx
cmp edx, dword [esp]
setb bl
cmove ebx, eax
mov eax, dword [esp + 0x24]
test bl, bl
mov ebx, dword [eax + 4]
mov eax, dword [esp + 0xc]
mov dword [ebp + 0x10], esi
mov dword [ebp + 0x14], eax
mov eax, dword [esp + 0x48]
mov dword [esp + 0x54], ebx
mov dword [ebp + 0x18], eax
mov dword [ebp + 0x1c], ebx
mov ebx, dword [ecx + 4]
mov dword [esp + 8], ebx
mov ecx, dword [edi + 4]
mov eax, dword [edi]
mov edi, dword [esp]
mov dword [esp + 0x44], ecx
mov dword [ebp + 0x24], ecx
mov ecx, dword [esp + 0x30]
mov dword [ebp + 0x20], eax
cmovne edx, edi
mov dword [ebp + 0x28], ecx
mov ecx, dword [esp + 0x58]
mov dword [ebp + 0x2c], ebx
mov ebx, dword [esp + 0x18]
cmovne edi, dword [ebp + 0x38]
cmovne ecx, dword [esp + 0x20]
cmovne ebx, dword [ebp + 0x3c]
mov dword [esp], edi
mov ecx, dword [ecx + 4]
mov dword [ebp + 0x30], edi
mov edi, dword [esp + 0xc]
mov dword [ebp + 0x34], ebx
mov dword [ebp + 0x38], edx
mov dword [esp + 0x18], ebx
xor ebx, ebx
mov edx, dword [esp + 0x1c]
cmp dword [esp + 0x28], edi
mov dword [ebp + 0x3c], ecx
seta bl
xor ecx, ecx
cmp edx, esi
mov esi, dword [esp + 0x44]
seta cl
cmove ecx, ebx
mov ebx, edx
mov edx, dword [esp + 0x10]
test cl, cl
mov ecx, dword [esp + 0x64]
cmove edi, dword [ebp + 0xc]
cmove ebx, edx
cmove edx, dword [ebp + 8]
cmovne ecx, dword [esp + 0x2c]
mov ecx, dword [ecx + 4]
mov dword [ebp + 0xc], edi
mov dword [ebp + 8], edx
mov dword [ebp + 0x10], ebx
mov edx, dword [esp + 0x48]
mov edi, dword [esp]
mov dword [ebp + 0x14], ecx
xor ecx, ecx
cmp dword [esp + 0x54], esi
seta cl
xor ebx, ebx
cmp edx, eax
seta bl
cmove ebx, ecx
mov ecx, dword [esp + 0x14]
test bl, bl
cmove edx, eax
cmove eax, dword [ebp + 0x18]
cmovne ecx, dword [esp + 0x4c]
mov ecx, dword [ecx + 4]
mov dword [ebp + 0x18], eax
mov eax, esi
mov esi, dword [esp + 0x18]
cmove eax, dword [ebp + 0x1c]
mov dword [ebp + 0x1c], eax
mov dword [ebp + 0x20], edx
xor eax, eax
cmp dword [esp + 8], esi
mov edx, dword [esp + 0x30]
mov dword [ebp + 0x24], ecx
mov esi, esi
seta al
xor ecx, ecx
cmp edx, edi
seta cl
cmove ecx, eax
mov eax, dword [esp + 0x20]
test cl, cl
mov ecx, edi
cmove ecx, dword [ebp + 0x28]
cmove esi, dword [ebp + 0x2c]
cmove edx, edi
cmovne eax, dword [esp + 0x5c]
mov eax, dword [eax + 4]
mov dword [ebp + 0x28], ecx
mov dword [ebp + 0x2c], esi
mov dword [ebp + 0x30], edx
mov edx, 9
mov dword [ebp + 0x34], eax
mov ebp, dword [esp + 0x90]
cmp edx, ebp
ja 0x47956a
jne 0x478ee0
mov ebx, dword [esp + 0x80]
cmp ebx, 0x12
jb 0x47955f
mov edx, dword [esp + 0x68]
mov ebp, dword [esp + 0xac]
mov edi, dword [esp + 0x94]
cmp dword [esp + 0x38], edx
mov dword [esp + 0x38], edi
je 0x477570
jmp 0x479429
mov eax, dword [esp + 0x38]
lea ecx, [eax + ebp*8]
lea edi, [eax + edx*8]
shl edx, 3
mov ebp, 8
sub ebp, edx
mov dword [esp + 4], ecx
jmp 0x478f1b
mov ebp, dword [esp + 0x38]
mov dword [ebp + 4], ebx
mov dword [ebp], esi
mov ecx, dword [esp + 4]
mov ebp, dword [esp]
add edi, 8
add ebp, 0xfffffff8
cmp edi, ecx
je 0x478ea1
mov ebx, dword [edi + 4]
xor eax, eax
mov esi, dword [edi]
cmp ebx, dword [edi - 4]
setb al
xor edx, edx
cmp esi, dword [edi - 8]
setb dl
cmove edx, eax
cmp dl, 1
jne 0x478f11
mov dword [esp], ebp
mov edx, ebp
mov ebp, edi
nop
mov eax, dword [ebp - 8]
mov ecx, dword [ebp - 4]
test edx, edx
mov dword [ebp + 4], ecx
mov dword [ebp], eax
je 0x478f00
xor ecx, ecx
cmp ebx, dword [ebp - 0xc]
setb cl
xor eax, eax
cmp esi, dword [ebp - 0x10]
setb al
cmove eax, ecx
add ebp, 0xfffffff8
add edx, 8
test al, al
jne 0x478f40
jmp 0x478f04
mov ebp, dword [esp + 0x1cc]
mov eax, dword [esp + 0x1c8]
mov dword [esp + 8], eax
jmp 0x479011
mov esi, dword [esp + 0x14]
xor ecx, ecx
movsd xmm0, qword [ebp + edi*8]
cmp esi, edx
mov edx, dword [esp + 0xc]
movsd qword [eax], xmm0
mov dword [ebp + edi*8 + 4], esi
setb cl
mov dword [esp], ecx
xor ecx, ecx
cmp edx, dword [esp + 4]
mov dword [ebp + edi*8], edx
setb cl
cmove ecx, dword [esp]
movzx edx, cl
mov ecx, dword [esp + 0x68]
add edx, edi
cmp edx, ebx
jae 0x47956a
movsd xmm0, qword [ecx]
movsd xmm1, qword [ecx + edx*8]
mov ebp, dword [esp + 0x18]
mov eax, edx
lea esi, [ecx + edx*8]
lea edi, [ecx + edx*8 + 8]
not eax
add ebx, eax
movsd qword [ecx], xmm1
movsd qword [ecx + edx*8], xmm0
push ebp
push dword [esp + 0xc]
call fcn.00477510
add esp, 8
mov dword [esp + 8], esi
mov esi, edi
cmp ebx, 0x21
jb 0x477527
sub ebp, 1
jb 0x47941b
mov eax, ebx
mov dword [esp + 0x18], ebp
mov dword [esp + 0x80], ebx
mov dword [esp + 0x68], esi
shr eax, 3
mov edx, eax
imul edi, eax, 0x38
shl edx, 5
add edi, esi
add edx, esi
cmp ebx, 0x40
jae 0x4790c0
mov eax, dword [esp + 0x68]
mov ecx, dword [edx + 4]
xor ebx, ebx
mov esi, dword [eax]
mov eax, dword [esp + 0x68]
mov dword [esp + 4], ecx
mov ebp, dword [eax + 4]
mov eax, dword [edx]
cmp ebp, ecx
mov dword [esp], eax
setb bl
xor ecx, ecx
cmp esi, eax
mov eax, dword [edi + 4]
setb cl
cmove ecx, ebx
xor ebx, ebx
cmp ebp, eax
mov ebp, dword [edi]
mov dword [esp + 0x38], eax
setb bl
xor eax, eax
cmp esi, ebp
mov esi, dword [esp + 0x68]
setb al
cmove eax, ebx
mov ebx, dword [esp + 0x80]
cmp cl, al
mov eax, esi
jne 0x4790cc
mov eax, dword [esp + 0x38]
xor ebx, ebx
cmp dword [esp + 4], eax
setb bl
xor eax, eax
cmp dword [esp], ebp
setb al
cmove eax, ebx
mov ebx, dword [esp + 0x80]
xor cl, al
cmovne edx, edi
mov eax, edx
jmp 0x4790cc
mov ecx, esi
push eax
push edi
call fcn.004795e0
add esp, 8
mov ecx, dword [esp + 8]
sub eax, esi
shr eax, 3
test ecx, ecx
je 0x479107
mov edx, dword [ecx + 4]
mov edi, dword [esp + 0x68]
mov esi, dword [ecx]
xor ecx, ecx
cmp edx, dword [edi + eax*8 + 4]
mov edi, dword [esp + 0x68]
setb cl
xor edx, edx
cmp esi, dword [edi + eax*8]
mov esi, dword [esp + 0x68]
setb dl
cmove edx, ecx
cmp dl, 1
jne 0x479260
cmp eax, ebx
jae 0x47956a
movsd xmm0, qword [esi]
movsd xmm1, qword [esi + eax*8]
lea ecx, [esi + 0x10]
lea ebp, [esi + 8]
xor edi, edi
movsd qword [esi], xmm1
movsd qword [esi + eax*8], xmm0
mov eax, dword [esi + 8]
mov edx, dword [esi]
mov dword [esp + 0xc], eax
mov eax, dword [esi + 0xc]
mov dword [esp + 4], edx
mov edx, dword [esi + 4]
mov dword [esp + 0x14], eax
lea eax, [esi + ebx*8 - 8]
mov dword [esp], edx
cmp ecx, eax
mov dword [esp + 0x38], eax
jae 0x4791f0
xor edi, edi
nop word cs:[eax + eax]
nop
mov edx, dword [esp]
xor eax, eax
mov esi, dword [esp + 4]
movsd xmm0, qword [ebp + edi*8]
cmp dword [ecx + 4], edx
setb al
xor ebx, ebx
cmp dword [ecx], esi
movsd qword [ecx - 8], xmm0
movsd xmm0, qword [ecx]
setb bl
cmove ebx, eax
movsd qword [ebp + edi*8], xmm0
xor eax, eax
movzx esi, bl
add esi, edi
cmp dword [ecx + 0xc], edx
mov edx, dword [esp + 4]
movsd xmm0, qword [ebp + esi*8]
setb al
xor ebx, ebx
cmp dword [ecx + 8], edx
movsd qword [ecx], xmm0
movsd xmm0, qword [ecx + 8]
setb bl
cmove ebx, eax
add ecx, 0x10
movzx edi, bl
movsd qword [ebp + esi*8], xmm0
add edi, esi
cmp ecx, dword [esp + 0x38]
jb 0x479160
mov ebx, dword [esp + 0x80]
mov esi, dword [esp + 0x68]
mov edx, dword [esp]
lea eax, [ecx - 8]
lea esi, [esi + ebx*8]
cmp ecx, esi
jne 0x4791fd
jmp 0x478f90
mov eax, ebp
lea esi, [esi + ebx*8]
cmp ecx, esi
je 0x478f90
mov dword [esp + 0x38], esi
mov esi, dword [esp + 4]
nop word cs:[eax + eax]
nop
mov ebx, dword [esp]
xor edx, edx
movsd xmm0, qword [ebp + edi*8]
cmp dword [ecx + 4], ebx
setb dl
xor ebx, ebx
cmp dword [ecx], esi
movsd qword [eax], xmm0
mov eax, ecx
movsd xmm0, qword [ecx]
lea ecx, [ecx + 8]
setb bl
cmove ebx, edx
mov edx, edi
movsd qword [ebp + edi*8], xmm0
movzx edi, bl
add edi, edx
cmp ecx, dword [esp + 0x38]
jne 0x479210
mov ebx, dword [esp + 0x80]
mov edx, dword [esp]
add ecx, 0xfffffff8
mov eax, ecx
jmp 0x478f90
movsd xmm0, qword [esi]
movsd xmm1, qword [esi + eax*8]
lea ecx, [esi + 8]
lea edi, [esi + ebx*8 - 8]
xor ebp, ebp
mov dword [esp + 4], ecx
mov dword [esp + 8], edi
movsd qword [esi], xmm1
movsd qword [esi + eax*8], xmm0
mov edx, dword [esi + 8]
mov ecx, dword [esi + 0xc]
mov dword [esp + 0xc], edx
mov edx, dword [esi]
mov dword [esp + 0x14], ecx
lea ecx, [esi + 0x10]
cmp ecx, edi
mov dword [esp], edx
mov edx, dword [esi + 4]
mov dword [esp + 0x38], edx
jae 0x479337
xor ebp, ebp
nop word [eax + eax]
mov edx, dword [esp + 0x38]
mov edi, dword [esp + 4]
xor eax, eax
mov esi, dword [esp]
cmp edx, dword [ecx + 4]
movsd xmm0, qword [edi + ebp*8]
setae al
xor ebx, ebx
cmp esi, dword [ecx]
movsd qword [ecx - 8], xmm0
movsd xmm0, qword [ecx]
setae bl
cmove ebx, eax
movsd qword [edi + ebp*8], xmm0
xor eax, eax
movzx esi, bl
add esi, ebp
cmp edx, dword [ecx + 0xc]
mov edx, dword [esp]
movsd xmm0, qword [edi + esi*8]
setae al
xor ebx, ebx
cmp edx, dword [ecx + 8]
movsd qword [ecx], xmm0
movsd xmm0, qword [ecx + 8]
setae bl
cmove ebx, eax
add ecx, 0x10
movzx ebp, bl
movsd qword [edi + esi*8], xmm0
add ebp, esi
cmp ecx, dword [esp + 8]
jb 0x4792b0
mov ebx, dword [esp + 0x80]
mov esi, dword [esp + 0x68]
mov edx, dword [esp + 0x38]
lea eax, [ecx - 8]
lea edi, [esi + ebx*8]
cmp ecx, edi
jne 0x479350
jmp 0x4793a0
mov eax, dword [esp + 4]
lea edi, [esi + ebx*8]
cmp ecx, edi
je 0x4793a0
nop word cs:[eax + eax]
nop dword [eax]
mov esi, dword [esp + 0x38]
xor edx, edx
cmp esi, dword [ecx + 4]
mov esi, eax
mov eax, dword [esp]
setae dl
xor ebx, ebx
cmp eax, dword [ecx]
mov eax, dword [esp + 4]
movsd xmm0, qword [eax + ebp*8]
setae bl
cmove ebx, edx
mov edx, ebp
movsd qword [esi], xmm0
movsd xmm0, qword [ecx]
movsd qword [eax + ebp*8], xmm0
movzx ebp, bl
mov eax, ecx
add ecx, 8
add ebp, edx
cmp ecx, edi
jne 0x479350
mov edi, dword [esp + 0xc]
mov edx, dword [esp + 0x38]
add ecx, 0xfffffff8
mov eax, ecx
jmp 0x4793a4
mov edi, dword [esp + 0xc]
mov esi, dword [esp + 0x14]
xor ecx, ecx
cmp edx, esi
mov edx, dword [esp + 4]
setae cl
xor ebx, ebx
cmp dword [esp], edi
movsd xmm0, qword [edx + ebp*8]
setae bl
cmove ebx, ecx
movsd qword [eax], xmm0
movzx eax, bl
mov ebx, dword [esp + 0x80]
mov dword [edx + ebp*8 + 4], esi
mov esi, dword [esp + 0x68]
mov dword [edx + ebp*8], edi
add eax, ebp
cmp eax, ebx
jae 0x47956a
movsd xmm0, qword [esi]
movsd xmm1, qword [esi + eax*8]
mov ebp, dword [esp + 0x18]
lea ecx, [eax + 1]
mov dword [esp + 8], 0
sub ebx, ecx
movsd qword [esi], xmm1
movsd qword [esi + eax*8], xmm0
lea esi, [esi + eax*8 + 8]
cmp ebx, 0x21
jae 0x479011
jmp 0x477527
mov ecx, esi
mov edx, ebx
call fcn.00479570
jmp 0x47955f
lea eax, [esp + 0xb4]
lea ecx, [edi - 8]
lea ebp, [edx + ebx*8 - 8]
lea esi, [esp + ebx*8 + 0xac]
mov dword [esp + 4], eax
jmp 0x479494
mov edi, dword [esp + 0x94]
movzx ebp, bl
movzx eax, al
movsd xmm0, qword [ecx]
mov ecx, dword [esp]
xor bl, 1
add dword [esp + 4], 8
movzx ebx, bl
lea edx, [edx + ebx*8]
lea edi, [edi + ebp*8]
lea ebp, [esi + eax*8 - 8]
mov esi, dword [esp + 0x38]
shl eax, 3
sub ecx, eax
movsd qword [esi], xmm0
add esi, 0xfffffff8
dec dword [esp + 0xb0]
mov esi, esi
je 0x4794f9
mov ebx, dword [edi + 4]
mov dword [esp], ecx
xor eax, eax
mov ecx, dword [edi]
mov dword [esp + 0x38], esi
mov dword [esp + 0x94], edi
cmp ebx, dword [edx + 4]
setb al
xor ebx, ebx
cmp ecx, dword [edx]
setb bl
cmove ebx, eax
test bl, bl
jne 0x4794bf
mov edi, edx
movsd xmm0, qword [edi]
mov eax, dword [esp + 4]
mov esi, ebp
mov edi, dword [esp]
mov ebp, dword [ebp]
xor ecx, ecx
movsd qword [eax], xmm0
mov eax, dword [esi + 4]
cmp eax, dword [edi + 4]
setb cl
xor eax, eax
cmp ebp, dword [edi]
setb al
cmove eax, ecx
mov ecx, edi
test al, al
jne 0x479450
mov ecx, esi
jmp 0x479450
mov ebx, dword [esp + 0x80]
add ecx, 8
mov esi, edx
mov dword [esp], ebp
test bl, 1
jne 0x479511
mov ebp, edi
jmp 0x479539
mov edx, ecx
xor eax, eax
xor ecx, ecx
mov ebp, edi
cmp esi, edx
cmovb edi, esi
setae al
setb cl
movsd xmm0, qword [edi]
mov edi, dword [esp + 4]
lea esi, [esi + ecx*8]
mov ecx, edx
lea ebp, [ebp + eax*8]
movsd qword [edi], xmm0
cmp esi, ecx
jne 0x47956a
mov edx, dword [esp]
add edx, 8
cmp ebp, edx
jne 0x47956a
shl ebx, 3
lea eax, [esp + 0xb4]
push ebx
push eax
push dword [esp + 0x70]
call sub.VCRUNTIME140.dll_memcpy
add esp, 0xc
add esp, 0x1b4
pop esi
pop edi
pop ebx
pop ebp
ret
ud2