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

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
and esp, 0xfffffff0
sub esp, 0x200
mov esi, esp
mov dword [esi + 0x1e8], ebp
mov dword [esi + 0x1ec], esp
mov dword [esi + 0x1f8], 0xffffffff
mov dword [esi + 0x1f4], 0x4d5b80
mov eax, dword [ebp + 0xc]
lea ecx, [esi + 0x1f0]
mov edx, dword fs:[0]
mov dword [esi + 0x1f0], edx
mov dword fs:[0], ecx
mov ecx, dword [eax]
mov dword [esi + 0x10], ecx
mov ecx, dword [eax + 8]
test ecx, ecx
mov dword [esi + 0x24], ecx
je 0x4cd3d0
xor ebx, ebx
cmp ecx, 0x618619
setb al
jae 0x4cea66
mov bl, al
imul edi, ecx, 0x150
shl ebx, 3
test edi, edi
js 0x4cea66
je 0x4cd3d7
movzx eax, byte [0x636fbd]
push ebx
push edi
call fcn.00452e20
add esp, 8
mov ecx, dword [esi + 0x24]
test eax, eax
jne 0x4cd3e4
jmp 0x4cea6d
mov eax, 8
jmp 0x4cd3e4
mov eax, ebx
mov ecx, dword [esi + 0x24]
test eax, eax
je 0x4cea6d
mov ebx, dword [esi + 0x10]
mov dword [esi + 0xfc], eax
mov dword [esi + 0x90], eax
imul eax, ecx, 0x150
mov dword [esi + 0x100], ecx
mov dword [esi + 0x104], 0
mov dword [esi + 0x98], ecx
add eax, ebx
mov dword [esi + 0x94], eax
xor eax, eax
jmp 0x4cd8a4
mov ecx, dword [esi + 0x2c]
mov eax, 4
xor edi, edi
lea edx, [ebx + 0x150]
mov dword [esi + 0x4c], eax
mov dword [esi + 0x18], edx
lea edx, [ecx + 1]
mov dword [esi + 0x1c], edx
push edi
push dword [esi + 0x14]
push eax
mov edi, ecx
call fcn.005885b0
add esp, 0xc
mov ecx, dword [ebx + 0x70]
movzx eax, byte [ebx + 0x14a]
mov edx, dword [ebx + 0x24]
movsd xmm1, qword [esi + 0x84]
movsd xmm0, qword [esi + 0x50]
mov dword [esi + 0x9c], ecx
mov ecx, dword [ebx + 0x74]
mov byte [esi + 0x14], al
mov eax, dword [ebx + 0x68]
mov dword [esi + 0xa4], ecx
mov ecx, dword [ebx + 0x78]
mov dword [esi + 0xa0], eax
mov eax, dword [ebx + 0x6c]
mov dword [esi + 0x10], ecx
mov ecx, dword [esi + 0x8c]
mov dword [esi + 0x28], eax
mov eax, dword [ebx + 0x20]
movsd qword [esi + 0x1c0], xmm1
movsd xmm1, qword [esi + 0x108]
movsd qword [esi + 0x150], xmm0
movsd xmm0, qword [esi + 0x74]
mov ebx, dword [esi + 0x90]
mov dword [esi + 0x1c8], ecx
mov ecx, dword [esi + 0x110]
movsd qword [esi + 0x1b0], xmm1
movsd xmm1, qword [esi + 0x114]
movhps xmm0, qword [esi + 0x7c]
mov dword [esi + 0x1b8], ecx
mov ecx, dword [esi + 0x11c]
movsd qword [esi + 0x1a0], xmm1
movsd xmm1, qword [esi + 0x120]
mov dword [esi + 0x1a8], ecx
mov ecx, dword [esi + 0x128]
movsd qword [esi + 0x190], xmm1
movsd xmm1, qword [esi + 0x12c]
mov dword [esi + 0x198], ecx
mov ecx, dword [esi + 0x134]
movsd qword [esi + 0x180], xmm1
movsd xmm1, qword [esi + 0x138]
mov dword [esi + 0x188], ecx
mov ecx, dword [esi + 0x140]
movsd qword [esi + 0x170], xmm1
movsd xmm1, qword [esi + 0x144]
mov dword [esi + 0x178], ecx
mov ecx, dword [esi + 0x14c]
movsd qword [esi + 0x160], xmm1
movaps xmm1, xmmword [esi + 0x1d0]
mov dword [esi + 0x168], ecx
mov ecx, dword [esi + 0x58]
mov dword [esi + 0x158], ecx
mov ecx, dword [esi + 0x144]
mov dword [esi + 0x50], ecx
movzx ecx, byte [esi + 0x148]
mov byte [esi + 0x54], cl
imul ecx, edi, 0x150
mov edi, dword [esi + 0xb0]
mov dword [ebx + ecx], edi
mov edi, dword [esi + 0xac]
mov dword [ebx + ecx + 4], edi
mov edi, dword [esi + 0xc8]
mov dword [ebx + ecx + 8], edi
mov edi, dword [esi + 0xc4]
mov dword [ebx + ecx + 0xc], edi
mov edi, dword [esi + 0xc0]
mov dword [ebx + ecx + 0x10], edi
mov edi, dword [esi + 0xbc]
mov dword [ebx + ecx + 0x14], edi
mov edi, dword [esi + 0xb8]
mov dword [ebx + ecx + 0x18], edi
mov edi, dword [esi + 0xb4]
mov dword [ebx + ecx + 0x1c], edi
mov dword [ebx + ecx + 0x20], eax
mov eax, dword [esi + 0xdc]
mov dword [ebx + ecx + 0x24], edx
movlps qword [ebx + ecx + 0x28], xmm1
mov dword [ebx + ecx + 0x30], eax
mov eax, dword [esi + 0xe0]
mov dword [ebx + ecx + 0x34], eax
mov eax, dword [esi + 0xf8]
mov dword [ebx + ecx + 0x3c], eax
mov eax, dword [esi + 0xf4]
mov dword [ebx + ecx + 0x38], eax
mov eax, dword [esi + 0xf0]
mov dword [ebx + ecx + 0x40], eax
mov eax, dword [esi + 0xec]
mov dword [ebx + ecx + 0x44], eax
mov eax, dword [esi + 0xe8]
mov dword [ebx + ecx + 0x48], eax
mov eax, dword [esi + 0xe4]
mov dword [ebx + ecx + 0x4c], eax
mov eax, dword [esi + 0xd0]
mov dword [ebx + ecx + 0x50], eax
mov eax, dword [esi + 0xcc]
mov dword [ebx + ecx + 0x54], eax
mov eax, dword [esi + 0xa0]
movups xmmword [ebx + ecx + 0x58], xmm0
mov dword [ebx + ecx + 0x68], eax
mov eax, dword [esi + 0x28]
mov dword [ebx + ecx + 0x6c], eax
mov eax, dword [esi + 0x9c]
mov dword [ebx + ecx + 0x70], eax
mov eax, dword [esi + 0xa4]
mov dword [ebx + ecx + 0x74], eax
mov eax, dword [esi + 0x10]
mov dword [ebx + ecx + 0x78], eax
mov eax, dword [esi + 0x1c8]
mov dword [ebx + ecx + 0x84], eax
mov eax, dword [esi + 0xd4]
movsd xmm0, qword [esi + 0x1c0]
movsd qword [ebx + ecx + 0x7c], xmm0
mov dword [ebx + ecx + 0x88], eax
mov eax, dword [esi + 0xa8]
mov dword [ebx + ecx + 0x8c], eax
mov eax, dword [esi + 0x1b8]
mov dword [ebx + ecx + 0x98], eax
movsd xmm0, qword [esi + 0x1b0]
movsd qword [ebx + ecx + 0x90], xmm0
movsd xmm0, qword [esi + 0x1a0]
movsd qword [ebx + ecx + 0x9c], xmm0
mov eax, dword [esi + 0x1a8]
mov dword [ebx + ecx + 0xa4], eax
movsd xmm0, qword [esi + 0x190]
movsd qword [ebx + ecx + 0xa8], xmm0
mov eax, dword [esi + 0x198]
mov dword [ebx + ecx + 0xb0], eax
mov eax, dword [esi + 0x3c]
mov dword [ebx + ecx + 0xb4], eax
mov eax, dword [esi + 0x44]
mov dword [ebx + ecx + 0xb8], eax
mov dword [ebx + ecx + 0xbc], eax
mov eax, dword [esi + 0x38]
mov dword [ebx + ecx + 0xc0], eax
mov eax, dword [esi + 0x48]
mov dword [ebx + ecx + 0xc4], eax
mov dword [ebx + ecx + 0xc8], eax
mov eax, dword [esi + 0x34]
mov dword [ebx + ecx + 0xcc], eax
mov eax, dword [esi + 0x40]
mov dword [ebx + ecx + 0xd0], eax
mov dword [ebx + ecx + 0xd4], eax
mov eax, dword [esi + 0x188]
mov dword [ebx + ecx + 0xe0], eax
movsd xmm0, qword [esi + 0x180]
movsd qword [ebx + ecx + 0xd8], xmm0
movsd xmm0, qword [esi + 0x170]
movsd qword [ebx + ecx + 0xe4], xmm0
mov eax, dword [esi + 0x178]
mov dword [ebx + ecx + 0xec], eax
mov eax, dword [esi + 0x6c]
mov dword [ebx + ecx + 0xf0], eax
mov eax, dword [esi + 0x70]
mov dword [ebx + ecx + 0xf4], eax
mov dword [ebx + ecx + 0xf8], eax
mov eax, dword [esi + 0x68]
mov dword [ebx + ecx + 0xfc], eax
mov eax, dword [esi + 0x64]
mov dword [ebx + ecx + 0x100], eax
mov dword [ebx + ecx + 0x104], eax
mov eax, dword [esi + 0x168]
mov dword [ebx + ecx + 0x110], eax
movsd xmm0, qword [esi + 0x160]
movsd qword [ebx + ecx + 0x108], xmm0
mov eax, dword [esi + 0x158]
mov dword [ebx + ecx + 0x11c], eax
mov eax, dword [esi + 0x5c]
movsd xmm0, qword [esi + 0x150]
movsd qword [ebx + ecx + 0x114], xmm0
mov dword [ebx + ecx + 0x120], eax
mov eax, dword [esi + 0x60]
mov dword [ebx + ecx + 0x124], eax
mov dword [ebx + ecx + 0x128], eax
mov eax, dword [esi + 8]
mov dword [ebx + ecx + 0x12c], eax
mov eax, dword [esi + 0x30]
mov dword [ebx + ecx + 0x130], eax
mov dword [ebx + ecx + 0x134], eax
mov eax, dword [esi + 0x4c]
mov dword [ebx + ecx + 0x138], eax
mov eax, dword [esi + 0xc]
mov dword [ebx + ecx + 0x13c], eax
mov dword [ebx + ecx + 0x140], eax
mov eax, dword [esi + 0xd8]
mov dword [ebx + ecx + 0x144], eax
movzx eax, byte [esi + 0x23]
mov byte [ebx + ecx + 0x148], al
movzx eax, byte [esi + 0x22]
mov byte [ebx + ecx + 0x149], al
movzx eax, byte [esi + 0x14]
mov byte [ebx + ecx + 0x14a], al
movzx eax, byte [esi + 0x54]
mov byte [ebx + ecx + 0x14f], al
mov eax, dword [esi + 0x50]
mov dword [ebx + ecx + 0x14b], eax
mov eax, dword [esi + 0x1c]
mov ebx, dword [esi + 0x18]
sub dword [esi + 0x98], 1
jb 0x4ce685
cmp ebx, dword [esi + 0x94]
je 0x4ce685
cmp eax, dword [esi + 0x24]
mov dword [esi + 0x2c], eax
jae 0x4ce6b5
mov eax, dword [ebx + 0x3c]
mov edi, dword [ebx + 0x30]
mov edx, dword [ebx + 0x34]
mov ecx, dword [ebx + 0x7c]
mov dword [esi + 0x10], ebx
mov dword [esi + 0xf8], eax
mov eax, dword [ebx + 0x38]
mov dword [esi + 0xdc], edi
mov dword [esi + 0xe0], edx
mov edi, dword [ebx + 0x40]
mov edx, dword [ebx + 0x44]
cmp ecx, 5
mov dword [esi + 0xf4], eax
movzx eax, byte [ebx + 0x148]
mov dword [esi + 0xf0], edi
mov dword [esi + 0xec], edx
mov edi, dword [ebx + 0x48]
mov edx, dword [ebx + 0x4c]
mov byte [esi + 0x23], al
movzx eax, byte [ebx + 0x149]
mov dword [esi + 0xe8], edi
mov dword [esi + 0xe4], edx
mov byte [esi + 0x22], al
jne 0x4cd940
mov dword [esi + 0x84], 5
jmp 0x4cd97d
cmp ecx, 4
jb 0x4cd96b
mov eax, dword [ebx + 0x80]
mov dword [esi + 8], ecx
mov ecx, dword [ebx + 0x84]
mov dword [esi + 0x1f8], 0
push eax
call dword [ecx + 0x20]
add esp, 4
mov ebx, dword [esi + 0x10]
mov ecx, dword [esi + 8]
mov dword [esi + 0x84], ecx
mov dword [esi + 0x88], eax
mov dword [esi + 0x8c], edx
mov edx, dword [ebx + 0x98]
mov ecx, 8
mov eax, 8
test edx, edx
je 0x4cdaa0
xor ebx, ebx
cmp edx, 0x10000000
setb al
jae 0x4ce79d
mov bl, al
lea edi, [edx*8]
shl ebx, 3
test edi, edi
js 0x4ce847
mov eax, dword [esi + 0x10]
mov dword [esi + 0xc], edx
mov eax, dword [eax + 0x90]
mov dword [esi + 0x18], eax
je 0x4cd9f0
movzx eax, byte [0x636fbd]
push ebx
push edi
call fcn.00452e20
mov edx, dword [esi + 0xc]
add esp, 8
test eax, eax
jne 0x4cd9fa
jmp 0x4ce8e7
mov eax, ebx
test eax, eax
je 0x4ce8e7
mov ebx, edx
lea ecx, [edx - 1]
mov dword [esi + 0x14], eax
and ebx, 0x1fffffff
cmp ebx, ecx
cmovae ebx, ecx
xor edi, edi
cmp ebx, 4
jb 0x4cda67
mov ecx, eax
mov eax, dword [esi + 0x18]
sub ecx, eax
cmp ecx, 0x10
mov ecx, edx
mov edx, eax
jb 0x4cda6e
inc ebx
mov edx, 2
mov edi, eax
mov ecx, ebx
and ecx, 1
cmove ecx, edx
sub ebx, ecx
mov ecx, dword [esi + 0xc]
lea edx, [eax + ebx*8]
mov eax, dword [esi + 0x14]
mov dword [esi + 8], ebx
sub ecx, ebx
xor ebx, ebx
nop word cs:[eax + eax]
movups xmm0, xmmword [edi + ebx*8]
movups xmmword [eax + ebx*8], xmm0
add ebx, 2
cmp dword [esi + 8], ebx
jne 0x4cda50
mov eax, edi
mov edi, dword [esi + 8]
jmp 0x4cda6e
mov eax, dword [esi + 0x18]
mov ecx, edx
mov edx, eax
mov ebx, dword [esi + 0xc]
lea ebx, [eax + ebx*8]
mov eax, dword [esi + 0x14]
lea edi, [eax + edi*8]
nop word [eax + eax]
cmp edx, ebx
je 0x4cda95
movsd xmm0, qword [edx]
add edx, 8
dec ecx
movsd qword [edi], xmm0
lea edi, [edi + 8]
jne 0x4cda80
mov ebx, dword [esi + 0x10]
mov edx, dword [esi + 0xc]
mov ecx, 8
mov dword [esi + 0x108], eax
mov dword [esi + 0x10c], edx
mov dword [esi + 0x110], edx
mov edi, dword [ebx + 0xa4]
mov eax, dword [ebx + 0x144]
test edi, edi
mov dword [esi + 0xd8], eax
je 0x4cdbdb
xor ebx, ebx
cmp edi, 0x10000000
setb al
jae 0x4ce998
mov bl, al
lea ecx, [edi*8]
shl ebx, 3
test ecx, ecx
js 0x4cea44
mov eax, dword [esi + 0x10]
mov dword [esi + 0x14], ecx
mov eax, dword [eax + 0x9c]
mov dword [esi + 8], eax
je 0x4cdb20
movzx eax, byte [0x636fbd]
push ebx
push ecx
call fcn.00452e20
add esp, 8
test eax, eax
jne 0x4cdb2a
jmp 0x4ce729
mov eax, ebx
test eax, eax
je 0x4ce729
mov ebx, edi
lea ecx, [edi - 1]
mov dword [esi + 0x14], edi
mov dword [esi + 0xc], eax
and ebx, 0x1fffffff
cmp ebx, ecx
cmovae ebx, ecx
xor edx, edx
cmp ebx, 4
jb 0x4cdb9e
mov ecx, dword [esi + 8]
sub eax, ecx
cmp eax, 0x10
mov eax, edi
jb 0x4cdba3
inc ebx
mov ecx, 2
mov eax, ebx
mov edx, ebx
and eax, 1
cmove eax, ecx
mov ecx, dword [esi + 8]
xor ebx, ebx
sub edx, eax
mov eax, edi
sub eax, edx
lea ecx, [ecx + edx*8]
nop word cs:[eax + eax]
nop dword [eax + eax]
mov edi, edx
mov edx, dword [esi + 8]
movups xmm0, xmmword [edx + ebx*8]
mov edx, edi
mov edi, dword [esi + 0xc]
movups xmmword [edi + ebx*8], xmm0
add ebx, 2
cmp edx, ebx
jne 0x4cdb80
mov edi, dword [esi + 0x14]
jmp 0x4cdba3
mov ecx, dword [esi + 8]
mov eax, edi
mov dword [esi + 0x18], edx
mov edx, dword [esi + 8]
mov ebx, dword [esi + 0xc]
lea edi, [edx + edi*8]
mov edx, dword [esi + 0x18]
lea edx, [ebx + edx*8]
mov ebx, dword [esi + 0x10]
nop dword [eax + eax]
cmp ecx, edi
je 0x4cdbd5
movsd xmm0, qword [ecx]
add ecx, 8
dec eax
movsd qword [edx], xmm0
lea edx, [edx + 8]
jne 0x4cdbc0
mov ecx, dword [esi + 0xc]
mov edi, dword [esi + 0x14]
mov dword [esi + 0x114], ecx
mov dword [esi + 0x118], edi
mov dword [esi + 0x11c], edi
mov eax, 8
mov dword [esi + 0x3c], 8
mov edx, dword [ebx + 0xb0]
test edx, edx
je 0x4cdd0b
xor ebx, ebx
cmp edx, 0x10000000
setb al
jae 0x4ce7ce
mov bl, al
lea edi, [edx*8]
shl ebx, 3
test edi, edi
js 0x4ce883
mov eax, dword [esi + 0x10]
mov dword [esi + 0xc], edx
mov eax, dword [eax + 0xa8]
mov dword [esi + 0x18], eax
je 0x4cdc60
movzx eax, byte [0x636fbd]
push ebx
push edi
call fcn.00452e20
mov edx, dword [esi + 0xc]
add esp, 8
test eax, eax
jne 0x4cdc6a
jmp 0x4ce928
mov eax, ebx
test eax, eax
je 0x4ce928
mov ebx, edx
lea ecx, [edx - 1]
mov dword [esi + 0x14], eax
and ebx, 0x1fffffff
cmp ebx, ecx
cmovae ebx, ecx
xor edi, edi
cmp ebx, 4
jb 0x4cdcd7
mov ecx, eax
mov eax, dword [esi + 0x18]
sub ecx, eax
cmp ecx, 0x10
mov ecx, edx
mov edx, eax
jb 0x4cdcde
inc ebx
mov edx, 2
mov edi, eax
mov ecx, ebx
and ecx, 1
cmove ecx, edx
sub ebx, ecx
mov ecx, dword [esi + 0xc]
lea edx, [eax + ebx*8]
mov eax, dword [esi + 0x14]
mov dword [esi + 8], ebx
sub ecx, ebx
xor ebx, ebx
nop word cs:[eax + eax]
movups xmm0, xmmword [edi + ebx*8]
movups xmmword [eax + ebx*8], xmm0
add ebx, 2
cmp dword [esi + 8], ebx
jne 0x4cdcc0
mov eax, edi
mov edi, dword [esi + 8]
jmp 0x4cdcde
mov eax, dword [esi + 0x18]
mov ecx, edx
mov edx, eax
mov ebx, dword [esi + 0xc]
lea ebx, [eax + ebx*8]
mov eax, dword [esi + 0x14]
lea edi, [eax + edi*8]
nop word [eax + eax]
cmp edx, ebx
je 0x4cdd05
movsd xmm0, qword [edx]
add edx, 8
dec ecx
movsd qword [edi], xmm0
lea edi, [edi + 8]
jne 0x4cdcf0
mov ebx, dword [esi + 0x10]
mov edx, dword [esi + 0xc]
mov dword [esi + 0x120], eax
mov dword [esi + 0x124], edx
mov dword [esi + 0x128], edx
mov edi, dword [ebx + 0xbc]
test edi, edi
mov dword [esi + 0x44], edi
je 0x4cdde6
xor edx, edx
cmp edi, 0x8000000
setb al
jae 0x4ce9de
mov ecx, edi
mov dl, al
shl ecx, 4
shl edx, 3
test ecx, ecx
mov dword [esi + 0x1c], ecx
js 0x4ce6ed
mov ebx, dword [ebx + 0xb4]
mov dword [esi + 8], edx
je 0x4cdd90
movzx eax, byte [0x636fbd]
push edx
push dword [esi + 0x1c]
call fcn.00452e20
mov edi, dword [esi + 0x44]
add esp, 8
test eax, eax
mov dword [esi + 0x3c], eax
jne 0x4cdd9d
jmp 0x4ce76c
mov eax, edx
test eax, eax
mov dword [esi + 0x3c], eax
je 0x4ce76c
xor eax, eax
nop
cmp dword [esi + 0x1c], eax
je 0x4cdde3
mov ecx, dword [ebx]
dec edi
mov dword [esi + 0xc], ecx
mov ecx, dword [ebx + 4]
mov edx, dword [esi + 0xc]
mov dword [esi + 0x14], ecx
mov ecx, dword [ebx + 0xc]
mov dword [esi + 8], ecx
mov ecx, dword [ebx + 8]
lea ebx, [ebx + 0x10]
mov dword [esi + 0x18], ecx
mov ecx, dword [esi + 0x3c]
mov dword [ecx + eax], edx
mov edx, dword [esi + 0x14]
mov dword [ecx + eax + 4], edx
mov edx, dword [esi + 0x18]
mov dword [ecx + eax + 8], edx
mov edx, dword [esi + 8]
mov dword [ecx + eax + 0xc], edx
lea eax, [eax + 0x10]
jne 0x4cdda0
mov ebx, dword [esi + 0x10]
mov eax, dword [ebx + 0xc8]
mov dword [esi + 0x34], 8
mov dword [esi + 0x38], 8
test eax, eax
mov dword [esi + 0x48], eax
je 0x4cdec6
xor edx, edx
cmp eax, 0x8000000
mov ecx, eax
setb al
jae 0x4ce818
mov dl, al
shl ecx, 4
shl edx, 3
test ecx, ecx
mov dword [esi + 0x1c], ecx
js 0x4ce8bf
mov ebx, dword [ebx + 0xc0]
je 0x4cde60
movzx eax, byte [0x636fbd]
mov edi, edx
push edx
push dword [esi + 0x1c]
call fcn.00452e20
add esp, 8
test eax, eax
mov dword [esi + 0x38], eax
jne 0x4cde6f
jmp 0x4ce969
mov edi, edx
mov eax, edx
test eax, eax
mov dword [esi + 0x38], eax
je 0x4ce969
mov edx, dword [esi + 0x48]
xor eax, eax
nop word cs:[eax + eax]
nop
cmp dword [esi + 0x1c], eax
je 0x4cdec3
mov ecx, dword [ebx]
dec edx
mov dword [esi + 8], ecx
mov ecx, dword [ebx + 4]
mov edi, dword [esi + 8]
mov dword [esi + 0xc], ecx
mov ecx, dword [ebx + 8]
mov dword [esi + 0x14], ecx
mov ecx, dword [ebx + 0xc]
lea ebx, [ebx + 0x10]
mov dword [esi + 0x18], ecx
mov ecx, dword [esi + 0x38]
mov dword [ecx + eax], edi
mov edi, dword [esi + 0xc]
mov dword [ecx + eax + 4], edi
mov edi, dword [esi + 0x14]
mov dword [ecx + eax + 8], edi
mov edi, dword [esi + 0x18]
mov dword [ecx + eax + 0xc], edi
lea eax, [eax + 0x10]
jne 0x4cde80
mov ebx, dword [esi + 0x10]
mov edi, dword [ebx + 0xd4]
test edi, edi
mov dword [esi + 0x40], edi
je 0x4cdf86
xor eax, eax
cmp edi, 0x8000000
setb byte [esi + 8]
jae 0x4cea1b
movzx edx, byte [esi + 8]
mov ecx, edi
shl ecx, 4
mov dword [esi + 0x1c], ecx
mov al, dl
shl eax, 3
test ecx, ecx
js 0x4ce715
mov ebx, dword [ebx + 0xcc]
mov dword [esi + 8], eax
je 0x4cdf25
mov ecx, eax
movzx eax, byte [0x636fbd]
push ecx
push dword [esi + 0x1c]
call fcn.00452e20
mov edi, dword [esi + 0x40]
add esp, 8
test eax, eax
mov dword [esi + 0x34], eax
je 0x4ce7b1
xor eax, eax
mov edx, edi
nop word cs:[eax + eax]
nop
cmp dword [esi + 0x1c], eax
je 0x4cdf83
mov ecx, dword [ebx]
dec edx
mov dword [esi + 8], ecx
mov ecx, dword [ebx + 4]
mov edi, dword [esi + 8]
mov dword [esi + 0xc], ecx
mov ecx, dword [ebx + 8]
mov dword [esi + 0x14], ecx
mov ecx, dword [ebx + 0xc]
lea ebx, [ebx + 0x10]
mov dword [esi + 0x18], ecx
mov ecx, dword [esi + 0x34]
mov dword [ecx + eax], edi
mov edi, dword [esi + 0xc]
mov dword [ecx + eax + 4], edi
mov edi, dword [esi + 0x14]
mov dword [ecx + eax + 8], edi
mov edi, dword [esi + 0x18]
mov dword [ecx + eax + 0xc], edi
lea eax, [eax + 0x10]
jne 0x4cdf40
mov ebx, dword [esi + 0x10]
mov edx, dword [ebx + 0xe0]
mov ecx, 8
mov eax, 8
test edx, edx
je 0x4ce0b0
xor ebx, ebx
cmp edx, 0x10000000
setb al
jae 0x4ce85b
mov bl, al
lea edi, [edx*8]
shl ebx, 3
test edi, edi
js 0x4ce900
mov eax, dword [esi + 0x10]
mov dword [esi + 0xc], edx
mov eax, dword [eax + 0xd8]
mov dword [esi + 0x18], eax
je 0x4ce000
movzx eax, byte [0x636fbd]
push ebx
push edi
call fcn.00452e20
mov edx, dword [esi + 0xc]
add esp, 8
test eax, eax
jne 0x4ce00a
jmp 0x4ce9ac
mov eax, ebx
test eax, eax
je 0x4ce9ac
mov ebx, edx
lea ecx, [edx - 1]
mov dword [esi + 0x14], eax
and ebx, 0x1fffffff
cmp ebx, ecx
cmovae ebx, ecx
xor edi, edi
cmp ebx, 4
jb 0x4ce077
mov ecx, eax
mov eax, dword [esi + 0x18]
sub ecx, eax
cmp ecx, 0x10
mov ecx, edx
mov edx, eax
jb 0x4ce07e
inc ebx
mov edx, 2
mov edi, eax
mov ecx, ebx
and ecx, 1
cmove ecx, edx
sub ebx, ecx
mov ecx, dword [esi + 0xc]
lea edx, [eax + ebx*8]
mov eax, dword [esi + 0x14]
mov dword [esi + 8], ebx
sub ecx, ebx
xor ebx, ebx
nop word cs:[eax + eax]
movups xmm0, xmmword [edi + ebx*8]
movups xmmword [eax + ebx*8], xmm0
add ebx, 2
cmp dword [esi + 8], ebx
jne 0x4ce060
mov eax, edi
mov edi, dword [esi + 8]
jmp 0x4ce07e
mov eax, dword [esi + 0x18]
mov ecx, edx
mov edx, eax
mov ebx, dword [esi + 0xc]
lea ebx, [eax + ebx*8]
mov eax, dword [esi + 0x14]
lea edi, [eax + edi*8]
nop word [eax + eax]
cmp edx, ebx
je 0x4ce0a5
movsd xmm0, qword [edx]
add edx, 8
dec ecx
movsd qword [edi], xmm0
lea edi, [edi + 8]
jne 0x4ce090
mov ebx, dword [esi + 0x10]
mov edx, dword [esi + 0xc]
mov ecx, 8
mov dword [esi + 0x12c], eax
mov dword [esi + 0x130], edx
mov dword [esi + 0x134], edx
mov edi, dword [ebx + 0xec]
test edi, edi
je 0x4ce1db
xor ebx, ebx
cmp edi, 0x10000000
setb al
jae 0x4cea55
mov bl, al
lea ecx, [edi*8]
shl ebx, 3
test ecx, ecx
js 0x4ce744
mov eax, dword [esi + 0x10]
mov dword [esi + 0x14], ecx
mov eax, dword [eax + 0xe4]
mov dword [esi + 8], eax
je 0x4ce120
movzx eax, byte [0x636fbd]
push ebx
push ecx
call fcn.00452e20
add esp, 8
test eax, eax
jne 0x4ce12a
jmp 0x4ce7e2
mov eax, ebx
test eax, eax
je 0x4ce7e2
mov ebx, edi
lea ecx, [edi - 1]
mov dword [esi + 0x14], edi
mov dword [esi + 0xc], eax
and ebx, 0x1fffffff
cmp ebx, ecx
cmovae ebx, ecx
xor edx, edx
cmp ebx, 4
jb 0x4ce19e
mov ecx, dword [esi + 8]
sub eax, ecx
cmp eax, 0x10
mov eax, edi
jb 0x4ce1a3
inc ebx
mov ecx, 2
mov eax, ebx
mov edx, ebx
and eax, 1
cmove eax, ecx
mov ecx, dword [esi + 8]
xor ebx, ebx
sub edx, eax
mov eax, edi
sub eax, edx
lea ecx, [ecx + edx*8]
nop word cs:[eax + eax]
nop dword [eax + eax]
mov edi, edx
mov edx, dword [esi + 8]
movups xmm0, xmmword [edx + ebx*8]
mov edx, edi
mov edi, dword [esi + 0xc]
movups xmmword [edi + ebx*8], xmm0
add ebx, 2
cmp edx, ebx
jne 0x4ce180
mov edi, dword [esi + 0x14]
jmp 0x4ce1a3
mov ecx, dword [esi + 8]
mov eax, edi
mov dword [esi + 0x18], edx
mov edx, dword [esi + 8]
mov ebx, dword [esi + 0xc]
lea edi, [edx + edi*8]
mov edx, dword [esi + 0x18]
lea edx, [ebx + edx*8]
mov ebx, dword [esi + 0x10]
nop dword [eax + eax]
cmp ecx, edi
je 0x4ce1d5
movsd xmm0, qword [ecx]
add ecx, 8
dec eax
movsd qword [edx], xmm0
lea edx, [edx + 8]
jne 0x4ce1c0
mov ecx, dword [esi + 0xc]
mov edi, dword [esi + 0x14]
mov dword [esi + 0x138], ecx
mov dword [esi + 0x13c], edi
mov dword [esi + 0x140], edi
mov edi, 0
mov dword [esi + 8], 0
mov eax, dword [ebx + 0x88]
mov edx, dword [ebx + 0xf8]
mov ecx, dword [ebx + 0xf0]
mov dword [esi + 0xd4], eax
mov eax, dword [ebx + 0x50]
test edx, edx
mov dword [esi + 0x70], edx
mov dword [esi + 0xd0], eax
mov eax, dword [ebx + 0x54]
mov dword [esi + 0xcc], eax
mov eax, 4
je 0x4ce290
xor ebx, ebx
cmp edx, 0xaaaaaab
mov dword [esi + 0xc], ecx
setb al
jae 0x4ce897
lea ecx, [edx*4]
mov bl, al
lea edi, [ecx + ecx*2]
shl ebx, 2
test edi, edi
js 0x4ce941
je 0x4ce280
movzx eax, byte [0x636fbd]
push ebx
push edi
call fcn.00452e20
add esp, 8
mov ecx, dword [esi + 0xc]
test eax, eax
jne 0x4ce28d
jmp 0x4ce9ef
mov eax, ebx
mov ecx, dword [esi + 0xc]
test eax, eax
je 0x4ce9ef
mov ebx, dword [esi + 0x10]
push edi
push ecx
mov dword [esi + 0x6c], eax
push eax
call fcn.005885b0
add esp, 0xc
mov ecx, dword [ebx + 0x104]
mov edi, dword [ebx + 0xfc]
mov eax, 4
test ecx, ecx
je 0x4ce31d
xor ebx, ebx
cmp ecx, 0x10000000
setb al
jae 0x4ce701
mov bl, al
lea edx, [ecx*8]
shl ebx, 2
test edx, edx
js 0x4ce789
mov dword [esi + 8], edx
je 0x4ce310
movzx eax, byte [0x636fbd]
push ebx
push edx
mov dword [esi + 0xc], edi
mov edi, ecx
call fcn.00452e20
mov ecx, edi
mov edi, dword [esi + 0xc]
add esp, 8
test eax, eax
jne 0x4ce31a
jmp 0x4ce82c
mov eax, ebx
test eax, eax
je 0x4ce82c
mov ebx, dword [esi + 0x10]
mov dword [esi + 0x64], ecx
push dword [esi + 8]
push edi
mov dword [esi + 0x68], eax
push eax
call fcn.005885b0
add esp, 0xc
movsd xmm0, qword [ebx + 0x28]
lea eax, [ebx + 0x108]
mov dword [esi + 0x1f8], 0xb
movaps xmmword [esi + 0x1d0], xmm0
push eax
lea eax, [esi + 0x144]
push eax
call fcn.004d0660
add esp, 8
mov ebx, dword [esi + 0x10]
mov ecx, dword [ebx + 0x11c]
mov edx, dword [ebx + 0x114]
test ecx, ecx
mov dword [esi + 8], ecx
je 0x4ce3c0
xor ebx, ebx
cmp ecx, 0x10000000
setb al
jae 0x4ce8d3
mov bl, al
lea edi, [ecx*8]
shl ebx, 2
test edi, edi
js 0x4ce984
mov dword [esi + 0xc], edi
je 0x4ce3d0
movzx eax, byte [0x636fbd]
push ebx
push edi
mov edi, edx
call fcn.00452e20
mov edx, edi
add esp, 8
mov edi, eax
test edi, edi
jne 0x4ce3da
jmp 0x4cea2c
mov edi, 4
xor eax, eax
jmp 0x4ce3e0
mov edi, ebx
test edi, edi
je 0x4cea2c
mov ebx, dword [esi + 0x10]
mov eax, dword [esi + 0xc]
push eax
push edx
push edi
call fcn.005885b0
add esp, 0xc
mov eax, dword [esi + 8]
mov dword [esi + 0x50], edi
mov dword [esi + 0x54], eax
mov dword [esi + 0x58], eax
mov ecx, dword [ebx + 0xc]
mov eax, dword [ebx + 8]
mov edx, dword [ebx]
mov edi, dword [ebx + 4]
mov dword [esi + 0xc4], ecx
mov ecx, dword [ebx + 0x10]
mov dword [esi + 0xc8], eax
mov eax, dword [ebx + 0x58]
mov dword [esi + 0xc0], ecx
mov ecx, dword [ebx + 0x14]
test eax, eax
mov dword [esi + 0xbc], ecx
mov ecx, dword [ebx + 0x18]
mov dword [esi + 0xb8], ecx
mov ecx, dword [ebx + 0x1c]
mov dword [esi + 0xb4], ecx
je 0x4ce470
lock inc dword [eax]
jle 0x4ce6d5
mov ecx, dword [ebx + 0x5c]
mov dword [esi + 0x74], eax
mov dword [esi + 0x78], ecx
mov eax, dword [ebx + 0x60]
test eax, eax
je 0x4ce47e
lock inc dword [eax]
jle 0x4ce6d5
mov ecx, dword [ebx + 0x64]
mov dword [esi + 0x7c], eax
mov dword [esi + 0x80], ecx
jmp 0x4ce485
mov dword [esi + 0x74], 0
mov eax, dword [ebx + 0x60]
test eax, eax
jne 0x4ce452
mov dword [esi + 0x7c], 0
mov ecx, dword [ebx + 0x120]
mov eax, dword [ebx + 0x8c]
mov dword [esi + 0xb0], edx
mov dword [esi + 0xac], edi
mov dword [esi + 8], ecx
mov ecx, dword [ebx + 0x128]
mov dword [esi + 0xa8], eax
test ecx, ecx
mov dword [esi + 0x60], ecx
je 0x4ce500
xor ebx, ebx
cmp ecx, 0x10000000
setb al
jae 0x4ce86f
mov bl, al
lea edi, [ecx*8]
shl ebx, 2
test edi, edi
js 0x4ce914
je 0x4ce510
movzx eax, byte [0x636fbd]
push ebx
push edi
call fcn.00452e20
add esp, 8
test eax, eax
jne 0x4ce51a
jmp 0x4ce9c5
mov eax, 4
xor edi, edi
jmp 0x4ce51d
mov eax, ebx
test eax, eax
je 0x4ce9c5
mov ebx, dword [esi + 0x10]
push edi
push dword [esi + 8]
mov dword [esi + 0x5c], eax
push eax
call fcn.005885b0
add esp, 0xc
mov ecx, dword [ebx + 0x134]
test ecx, ecx
mov dword [esi + 0x30], ecx
je 0x4ce590
xor edx, edx
cmp ecx, 0x5555556
setb al
jae 0x4ce6d9
lea ecx, [ecx*8]
mov dl, al
lea eax, [ecx + ecx*2]
shl edx, 3
test eax, eax
mov dword [esi + 0x28], eax
js 0x4ce758
mov ebx, dword [ebx + 0x12c]
je 0x4ce5a0
movzx eax, byte [0x636fbd]
mov edi, edx
push edx
push dword [esi + 0x28]
call fcn.00452e20
add esp, 8
mov edx, eax
mov ecx, dword [esi + 0x30]
test edx, edx
jne 0x4ce5ad
jmp 0x4ce7fd
mov edx, 8
jmp 0x4ce60d
mov edi, edx
mov ecx, dword [esi + 0x30]
test edx, edx
je 0x4ce7fd
xor eax, eax
nop
cmp dword [esi + 0x28], eax
je 0x4ce60a
mov edi, dword [ebx]
dec ecx
mov dword [esi + 8], edi
mov edi, dword [ebx + 4]
mov dword [esi + 0xc], edi
mov edi, dword [ebx + 8]
mov dword [esi + 0x14], edi
mov edi, dword [ebx + 0xc]
mov dword [esi + 0x18], edi
mov edi, dword [ebx + 0x10]
mov dword [esi + 0x1c], edi
mov edi, dword [ebx + 0x14]
lea ebx, [ebx + 0x18]
mov dword [esi + 0x4c], edi
mov edi, dword [esi + 8]
mov dword [edx + eax], edi
mov edi, dword [esi + 0xc]
mov dword [edx + eax + 4], edi
mov edi, dword [esi + 0x14]
mov dword [edx + eax + 8], edi
mov edi, dword [esi + 0x18]
mov dword [edx + eax + 0xc], edi
mov edi, dword [esi + 0x1c]
mov dword [edx + eax + 0x10], edi
mov edi, dword [esi + 0x4c]
mov dword [edx + eax + 0x14], edi
lea eax, [eax + 0x18]
jne 0x4ce5b0
mov ebx, dword [esi + 0x10]
mov ecx, dword [ebx + 0x140]
mov eax, dword [ebx + 0x138]
mov dword [esi + 8], edx
test ecx, ecx
mov dword [esi + 0xc], ecx
mov dword [esi + 0x14], eax
je 0x4cd420
xor ebx, ebx
cmp ecx, 0x10000000
setb al
jae 0x4ce8ab
mov bl, al
lea edi, [ecx*8]
shl ebx, 2
test edi, edi
js 0x4ce955
je 0x4ce670
movzx eax, byte [0x636fbd]
push ebx
push edi
call fcn.00452e20
add esp, 8
mov ecx, dword [esi + 0x2c]
test eax, eax
jne 0x4ce67d
jmp 0x4cea05
mov eax, ebx
mov ecx, dword [esi + 0x2c]
test eax, eax
je 0x4cea05
mov ebx, dword [esi + 0x10]
jmp 0x4cd42a
mov ecx, dword [esi + 0x24]
mov eax, dword [ebp + 8]
mov dword [esi + 0x104], ecx
mov dword [eax + 8], ecx
mov ecx, dword [esi + 0x1f0]
movsd xmm0, qword [esi + 0xfc]
movsd qword [eax], xmm0
mov dword fs:[0], ecx
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret
mov dword [esi + 0x1f8], 0
push 0x60528c
push dword [esi + 0x24]
push eax
call fcn.005b17d0
add esp, 0xc
jmp 0x4cea64
ud2
mov dword [esi + 0x1f8], 0xe
call fcn.00538200
jmp 0x4cea64
mov dword [esi + 0x1f8], 4
call fcn.00538200
jmp 0x4cea64
mov dword [esi + 0x1f8], 0xa
call fcn.00538200
jmp 0x4cea64
mov dword [esi + 0x1f8], 6
call fcn.00538200
jmp 0x4cea64
mov dword [esi + 0x1f8], 2
push dword [esi + 0x14]
push ebx
call fcn.005b14d0
add esp, 8
jmp 0x4cea64
mov dword [esi + 0x1f8], 8
call fcn.00538200
jmp 0x4cea64
mov dword [esi + 0x1f8], 0xe
call fcn.00538200
jmp 0x4cea64
mov dword [esi + 0x1f8], 4
push dword [esi + 0x1c]
push dword [esi + 8]
call fcn.005b14d0
add esp, 8
jmp 0x4cea64
mov dword [esi + 0x1f8], 0xa
call fcn.00538200
jmp 0x4cea64
mov dword [esi + 0x1f8], 1
call fcn.00538200
jmp 0x4cea64
mov dword [esi + 0x1f8], 6
push dword [esi + 0x1c]
push dword [esi + 8]
call fcn.005b14d0
add esp, 8
jmp 0x4cea64
mov dword [esi + 0x1f8], 3
call fcn.00538200
jmp 0x4cea64
mov dword [esi + 0x1f8], 8
push dword [esi + 0x14]
push ebx
call fcn.005b14d0
add esp, 8
jmp 0x4cea64
mov dword [esi + 0x1f8], 0xe
push dword [esi + 0x28]
push edi
call fcn.005b14d0
add esp, 8
jmp 0x4cea64
mov dword [esi + 0x1f8], 5
call fcn.00538200
jmp 0x4cea64
mov dword [esi + 0x1f8], 0xa
push dword [esi + 8]
push ebx
call fcn.005b14d0
add esp, 8
jmp 0x4cea64
mov dword [esi + 0x1f8], 1
call fcn.00538200
jmp 0x4cea64
mov dword [esi + 0x1f8], 7
call fcn.00538200
jmp 0x4cea64
mov dword [esi + 0x1f8], 0xd
call fcn.00538200
jmp 0x4cea64
mov dword [esi + 0x1f8], 3
call fcn.00538200
jmp 0x4cea64
mov dword [esi + 0x1f8], 9
call fcn.00538200
jmp 0x4cea64
mov dword [esi + 0x1f8], 0xf
call fcn.00538200
jmp 0x4cea64
mov dword [esi + 0x1f8], 5
call fcn.00538200
jmp 0x4cea64
mov dword [esi + 0x1f8], 0xc
call fcn.00538200
jmp 0x4cea64
mov dword [esi + 0x1f8], 1
push edi
push ebx
call fcn.005b14d0
add esp, 8
jmp 0x4cea64
mov dword [esi + 0x1f8], 7
call fcn.00538200
jmp 0x4cea64
mov dword [esi + 0x1f8], 0xd
call fcn.00538200
jmp 0x4cea64
mov dword [esi + 0x1f8], 3
push edi
push ebx
call fcn.005b14d0
add esp, 8
jmp 0x4cea64
mov dword [esi + 0x1f8], 9
call fcn.00538200
jmp 0x4cea64
mov dword [esi + 0x1f8], 0xf
call fcn.00538200
jmp 0x4cea64
mov dword [esi + 0x1f8], 5
push dword [esi + 0x1c]
push edi
call fcn.005b14d0
add esp, 8
jmp 0x4cea64
mov dword [esi + 0x1f8], 0xc
call fcn.00538200
jmp 0x4cea64
mov dword [esi + 0x1f8], 2
call fcn.00538200
jmp 0x4cea64
mov dword [esi + 0x1f8], 7
push edi
push ebx
call fcn.005b14d0
add esp, 8
jmp 0x4cea64
mov dword [esi + 0x1f8], 0xd
push edi
push ebx
call fcn.005b14d0
add esp, 8
jmp 0x4cea64
mov dword [esi + 0x1f8], 4
call fcn.00538200
jmp 0x4cea64
mov dword [esi + 0x1f8], 9
push edi
push ebx
call fcn.005b14d0
add esp, 8
jmp 0x4cea64
mov dword [esi + 0x1f8], 0xf
push edi
push ebx
call fcn.005b14d0
add esp, 8
jmp 0x4cea64
mov dword [esi + 0x1f8], 6
call fcn.00538200
jmp 0x4cea64
mov dword [esi + 0x1f8], 0xc
push dword [esi + 0xc]
push ebx
call fcn.005b14d0
add esp, 8
jmp 0x4cea64
mov dword [esi + 0x1f8], 2
call fcn.00538200
jmp 0x4cea64
mov dword [esi + 0x1f8], 8
call fcn.00538200
ud2
call fcn.00538200
ud2
push edi
push ebx
call fcn.005b14d0
add esp, 8
ud2