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

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
and esp, 0xfffffff8
sub esp, 0x1c8
mov dword [esp + 0x70], ecx
mov ecx, dword [ebp + 8]
call 0x4c94cb
pop eax
mov ebx, edx
mov dword [esp + 0x28], eax
mov esi, dword [ecx + 0x2ec]
test esi, esi
je 0x4c94fc
cmp esi, 6
ja 0x4cb2ce
imul eax, esi, 0x7c
cmp dword [eax + ecx - 0x7c], 0x80000001
je 0x4cb2ce
lea edi, [eax + ecx - 0x7c]
jmp 0x4c9502
mov edi, dword [ecx + 0x2e8]
mov ecx, dword [edi + 0x38]
mov eax, dword [edi + 0x34]
test ecx, ecx
mov dword [esp + 0x38], eax
mov dword [esp + 0x3c], ecx
mov dword [esp + 0x40], 0
je 0x4c9548
cmp byte [eax], 0x17
jne 0x4c9548
lea ecx, [esp + 0xa8]
lea edx, [esp + 0x38]
push 1
push 0x17
call fcn.004cb300
add esp, 8
cmp byte [esp + 0xa8], 0
jne 0x4c968c
jmp 0x4c956d
lea ecx, [esp + 0xa8]
lea edx, [esp + 0x38]
push 0
push 0x18
call fcn.004cb300
add esp, 8
cmp byte [esp + 0xa8], 0
jne 0x4c968c
mov eax, dword [esp + 0x40]
mov dword [esp + 8], edi
mov dword [esp + 0x2c], esi
mov esi, dword [esp + 0xb0]
mov edi, dword [esp + 0xb4]
cmp eax, dword [esp + 0x3c]
jae 0x4c9667
mov ecx, dword [esp + 0x38]
cmp byte [ecx + eax], 0x17
jne 0x4c9667
lea ecx, [esp + 0xa8]
lea edx, [esp + 0x38]
push 1
push 0x17
call fcn.004cb300
add esp, 8
cmp byte [esp + 0xa8], 0
jne 0x4c968c
mov ecx, dword [esp + 0xb0]
mov eax, dword [esp + 0xb4]
mov dword [esp + 0x80], ebx
cmp ecx, esi
mov edx, eax
sbb edx, edi
mov dl, 0x24
jb 0x4c9694
mov ebx, edi
mov edi, dword [ebp + 0xc]
mov edx, dword [ebp + 0x10]
cmp edi, esi
mov esi, edx
sbb edx, ebx
mov dl, 0x1f
jb 0x4c9694
cmp ecx, edi
mov dl, 0x1d
sbb eax, esi
jb 0x4c9694
mov eax, dword [esp + 0x40]
mov dl, 0x1a
cmp eax, dword [esp + 0x3c]
jne 0x4c984d
mov eax, dword [ebp + 0x14]
mov edi, dword [esp + 8]
mov dword [esp + 0x134], eax
mov eax, dword [edi + 0x4c]
test eax, eax
je 0x4c96bd
mov ecx, dword [edi + 0x50]
mov dword [esp + 0xa8], eax
mov dword [esp + 0xac], ecx
lea ecx, [esp + 0xa8]
mov dword [esp + 0xb0], 0
call fcn.004c79a0
mov esi, dword [ebp + 8]
test al, 1
mov eax, edx
je 0x4c96d1
mov edx, eax
jmp 0x4c9694
lea ecx, [esp + 0xa8]
lea edx, [esp + 0x38]
push 0
push 0x18
call fcn.004cb300
add esp, 8
cmp byte [esp + 0xa8], 0
je 0x4c95c4
movzx edx, byte [esp + 0xa9]
movzx ecx, dl
xor eax, eax
add ecx, 0xffffffd2
cmp ecx, 3
ja 0x4c96a8
cmp ecx, 2
je 0x4c96a8
mov al, 1
mov ecx, dword [esp + 0x70]
mov byte [ecx + 1], al
mov byte [ecx + 2], dl
mov byte [ecx], 1
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret
cmp dword [esp + 0x2c], 0
mov esi, dword [ebp + 8]
je 0x4c97ae
mov dl, 0x22
xor eax, eax
jmp 0x4c96a8
mov eax, dword [esp + 0xb0]
cmp eax, dword [esp + 0xac]
jne 0x4c96fc
cmp dword [esp + 0x2c], 0
je 0x4c978d
mov al, 0x22
test dl, 1
je 0x4c9663
jmp 0x4c9798
mov bh, dl
lea ecx, [esp + 0x38]
lea edx, [esp + 0xa8]
push 2
call fcn.004c7790
add esp, 4
mov esi, dword [esp + 0x38]
test esi, esi
je 0x4c9746
mov edx, dword [esp + 0x3c]
mov al, 0x1a
test edx, edx
je 0x4c9663
movzx ecx, byte [esi]
test cl, cl
je 0x4c9750
mov esi, dword [ebp + 8]
js 0x4c9663
cmp edx, 1
mov dl, bh
jne 0x4c9663
jmp 0x4c976b
movzx eax, byte [esp + 0x3c]
jmp 0x4c9663
dec edx
je 0x4c9764
movzx ecx, byte [esi + 1]
mov esi, dword [ebp + 8]
test cl, cl
jns 0x4c9663
jmp 0x4c9739
mov esi, dword [ebp + 8]
xor ecx, ecx
mov dl, bh
cmp dword [esp + 0x2c], 0
je 0x4c978d
mov al, 0x22
test dl, 1
je 0x4c9663
movzx ecx, cl
mov al, 0x33
cmp ecx, dword [ebp + 0x14]
jb 0x4c9663
jmp 0x4c9798
mov al, 0x1c
test dl, 1
jne 0x4c9663
mov eax, dword [esp + 0xb0]
mov dl, 0x1a
cmp eax, dword [esp + 0xac]
jne 0x4c984d
mov eax, dword [edi + 0x5c]
test eax, eax
je 0x4c9854
mov ecx, dword [edi + 0x60]
mov dword [esp + 0xa8], eax
mov dword [esp + 0xac], ecx
mov ecx, dword [esp + 0x80]
mov dword [esp + 0xb0], 0
mov esi, dword [ecx + 4]
mov edi, dword [ecx + 8]
mov ebx, ecx
jmp 0x4c97fa
mov eax, dword [esp + 0xb0]
cmp eax, dword [esp + 0xac]
je 0x4cad41
lea ecx, [esp + 0x38]
lea edx, [esp + 0xa8]
push 6
call fcn.004c7790
add esp, 4
mov eax, dword [esp + 0x38]
test eax, eax
je 0x4cad37
cmp edi, dword [esp + 0x3c]
jne 0x4c97e6
push edi
push eax
push esi
call sub.VCRUNTIME140.dll_memcmp
add esp, 0xc
test eax, eax
jne 0x4c97e6
mov eax, dword [esp + 0xac]
mov ecx, dword [esp + 0xb0]
sub eax, ecx
add eax, ecx
jb 0x4cb2ce
mov esi, dword [ebp + 8]
jmp 0x4c9864
xor eax, eax
jmp 0x4c96a8
mov ebx, dword [esp + 0x80]
test byte [ebx], 1
je 0x4cad48
mov eax, dword [ebx + 0x24]
test eax, eax
je 0x4cad51
mov edi, dword [ebx + 0x20]
lea eax, [eax + eax*8]
xor ecx, ecx
mov edx, dword [ebx + 0x10]
lea eax, [edi + eax*4]
mov dword [esp + 0x140], edx
mov dword [esp + 0x154], eax
movzx eax, byte [ebx + 0x16]
mov byte [esp + 0x26], al
movzx eax, byte [ebx + 0x15]
mov byte [esp + 0x17], al
test al, 1
mov eax, 0x38
cmove eax, ecx
mov cl, 0x37
mov dword [esp + 0x13c], eax
movzx eax, byte [ebx + 0x14]
mov byte [esp + 0x27], al
mov eax, dword [ebx + 0x18]
mov dword [esp + 0x50], eax
mov eax, dword [ebx + 0x1c]
mov dword [esp + 0x4c], eax
mov eax, dword [ebx + 0xc]
mov dword [esp + 0x144], eax
lea eax, [eax + edx*4]
mov dword [esp + 0x7c], eax
mov eax, dword [edi + 4]
mov edx, dword [edi + 8]
mov dword [esp + 0x6c], edi
mov dword [esp + 8], eax
mov eax, dword [esi + 0x2ec]
test eax, eax
je 0x4c990f
cmp eax, 6
ja 0x4cb2ce
mov edi, eax
imul eax, eax, 0x7c
cmp dword [eax + esi - 0x7c], 0x80000001
je 0x4cb2ce
lea eax, [eax + esi - 0x7c]
jmp 0x4c9917
mov edi, eax
mov eax, dword [esi + 0x2e8]
cmp dword [eax + 0x30], edx
jne 0x4c993b
mov ebx, edx
push edx
push dword [esp + 0xc]
push dword [eax + 0x2c]
mov byte [esp + 0x21], cl
call sub.VCRUNTIME140.dll_memcmp
movzx ecx, byte [esp + 0x21]
add esp, 0xc
test eax, eax
je 0x4c998a
mov edx, dword [esp + 0x34]
and edx, 0xff000000
or edx, 0x370001
test dl, 1
je 0x4cad57
test edx, 0x100
jne 0x4cad63
mov edi, dword [esp + 0x6c]
mov dword [esp + 0x34], edx
shr edx, 0x10
movzx ecx, cl
add edi, 0x24
call fcn.004cd1d0
cmp edi, dword [esp + 0x154]
mov ecx, eax
jne 0x4c98d5
jmp 0x4cad6c
test edi, edi
mov dword [esp + 4], ebx
je 0x4c99a3
imul eax, edi, 0x7c
cmp dword [eax + esi - 0x7c], 0x80000001
je 0x4cb2ce
mov eax, dword [esp + 0x6c]
cmp byte [esp + 0x26], 2
mov dword [esp + 0x30], edi
mov ecx, dword [eax + 0x10]
mov eax, dword [eax + 0x14]
mov dword [esp + 0x10], ecx
mov dword [esp], eax
jne 0x4c9a6b
mov esi, dword [esp + 0x30]
test esi, esi
je 0x4c99ee
cmp esi, 6
ja 0x4cb2ce
mov eax, dword [ebp + 8]
lea edi, [esi - 1]
imul ebx, edi, 0x7c
cmp dword [eax + ebx], 0x80000001
je 0x4cb2ce
add ebx, eax
jmp 0x4c99f9
mov eax, dword [ebp + 8]
xor edi, edi
mov ebx, dword [eax + 0x2e8]
mov ecx, dword [esp + 0x50]
mov edx, dword [esp + 0x4c]
lea eax, [ebx + 0x14]
push dword [ebp + 0x18]
push eax
push dword [esp + 8]
push dword [esp + 0x1c]
call fcn.004cb950
add esp, 0x10
cmp al, 0x46
jne 0x4cab85
mov eax, dword [ebx + 0x44]
mov ecx, dword [ebx + 0x48]
test esi, esi
mov esi, edi
mov dword [esp + 0x10], eax
mov dword [esp], ecx
jne 0x4c99c7
mov eax, dword [esp + 0x6c]
xor ecx, ecx
cmp dword [eax + 0x18], 0x80000001
je 0x4c9a45
mov ecx, dword [eax + 0x1c]
mov edx, dword [ebp + 0x18]
mov esi, dword [ebp + 8]
mov eax, dword [eax + 0x20]
mov edx, dword [edx + 8]
mov dword [esp + 8], edx
mov edx, dword [esi + 0x2e8]
mov dword [esp + 0x130], edx
mov edx, dword [esp + 0x30]
jmp 0x4ca097
cmp dword [esp + 0x140], 0
mov edi, dword [esp + 0x30]
je 0x4ca941
xor ecx, ecx
jmp 0x4c9ac5
test byte [esp + 0x17], 1
mov edi, dword [esp + 0x68]
mov esi, dword [esp + 0x20]
mov ebx, dword [esp + 0x1c]
jne 0x4cac06
test esi, esi
mov esi, dword [ebx + 0x44]
mov edx, dword [ebx + 0x48]
mov ecx, dword [ebx + 0x54]
mov eax, dword [ebx + 0x58]
mov dword [esp + 0x10], esi
mov dword [esp], edx
mov esi, dword [ebx + 0x3c]
mov edx, dword [ebx + 0x40]
mov dword [esp + 0x78], eax
mov dword [esp + 8], esi
mov dword [esp + 4], edx
je 0x4c9a33
mov esi, edi
test edi, edi
mov dword [esp + 0x54], ecx
je 0x4c9af2
cmp esi, 6
ja 0x4cb2ce
mov eax, dword [ebp + 8]
lea edi, [esi - 1]
imul ebx, edi, 0x7c
cmp dword [eax + ebx], 0x80000001
je 0x4cb2ce
add ebx, eax
jmp 0x4c9afd
mov eax, dword [ebp + 8]
xor edi, edi
mov ebx, dword [eax + 0x2e8]
mov ecx, dword [esp + 0x50]
mov edx, dword [esp + 0x4c]
lea eax, [ebx + 0x14]
push dword [ebp + 0x18]
push eax
push dword [esp + 8]
push dword [esp + 0x1c]
call fcn.004cb950
add esp, 0x10
mov ecx, dword [esp + 4]
cmp al, 0x46
jne 0x4ca91f
cmp dword [ebx + 0x30], ecx
jne 0x4cb2ce
mov eax, ecx
mov ecx, dword [ebx + 0x2c]
push eax
push dword [esp + 0xc]
mov dword [esp + 0x20], ecx
push ecx
call sub.VCRUNTIME140.dll_memcmp
add esp, 0xc
test eax, eax
jne 0x4cb2ce
movzx ecx, byte [esp + 0x27]
test esi, esi
setne al
xor cl, 1
test al, cl
jne 0x4c9a98
mov dword [esp + 0x1c], ebx
mov dword [esp + 0x68], edi
mov ebx, dword [esp + 0x144]
mov edi, dword [esp + 4]
mov dword [esp + 0x20], esi
jmp 0x4c9b8f
mov edi, dword [esp + 4]
add ebx, 4
cmp ebx, dword [esp + 0x7c]
je 0x4c9a81
mov ecx, dword [ebx]
mov eax, dword [ecx + 8]
mov dword [esp + 0xc], eax
neg eax
jno 0x4c9bce
cmp dword [ecx + 0x2c], edi
jne 0x4c9b82
push edi
push dword [esp + 0x1c]
push dword [ecx + 0x28]
mov dword [esp + 0x14], ecx
call sub.VCRUNTIME140.dll_memcmp
mov esi, dword [esp + 0x14]
add esp, 0xc
test eax, eax
jne 0x4c9b82
mov edx, dword [esi + 0x38]
mov eax, 0x3c
test edx, edx
jne 0x4c9c02
jmp 0x4c9e93
cmp dword [ecx + 0x10], edi
jne 0x4c9b82
push edi
push dword [esp + 0x1c]
push dword [ecx + 0xc]
mov dword [esp + 0x14], ecx
call sub.VCRUNTIME140.dll_memcmp
mov esi, dword [esp + 0x14]
add esp, 0xc
test eax, eax
jne 0x4c9b82
xor eax, eax
cmp eax, dword [esi + 0x38]
jo 0x4c9eb6
mov edx, dword [esi + 0x3c]
mov eax, 0x40
lea ecx, [esp + 0xa8]
mov dword [esp + 8], esi
push dword [esi + eax]
call fcn.004cbaf0
add esp, 4
movzx eax, byte [esp + 0xbb]
cmp al, 2
je 0x4c9b82
test al, 1
jne 0x4cb2ce
cmp dword [esp + 0x20], 0
sete al
test byte [esp + 0xb9], al
jne 0x4c9b82
movzx ecx, byte [esp + 0xb8]
xor cl, 1
or al, cl
test al, 1
je 0x4c9b82
mov eax, dword [esp + 0x1c]
mov esi, dword [eax + 0x74]
test esi, esi
je 0x4c9e8d
mov eax, dword [esp + 0xa8]
test eax, eax
je 0x4c9b7e
mov edx, dword [esp + 0x1c]
mov ecx, dword [esp + 0xac]
mov edi, dword [edx + 0x78]
mov dword [esp + 0x38], eax
mov dword [esp + 0x3c], ecx
lea ecx, [esp + 0xa8]
lea edx, [esp + 0x38]
mov dword [esp + 0x40], 0
call fcn.004cc150
mov eax, dword [esp + 0xac]
test eax, eax
sete cl
or cl, byte [esp + 0xa8]
test cl, 1
jne 0x4c9b7e
mov dword [esp + 0x9c], esi
mov dword [esp + 0xa0], edi
test edi, edi
mov edi, dword [esp + 4]
mov ecx, dword [esp + 0xb0]
mov edx, dword [esp + 0xb4]
mov dword [esp + 0x5c], eax
mov dword [esp + 0xa4], 0
mov dword [esp + 0x60], ecx
mov dword [esp + 0x64], edx
je 0x4c9b82
lea ecx, [esp + 0xa8]
lea edx, [esp + 0x9c]
call fcn.004c7be0
test byte [esp + 0xa8], 1
jne 0x4c9b82
mov eax, dword [esp + 0xb4]
or eax, dword [esp + 0xbc]
jne 0x4c9b82
mov eax, dword [esp + 0xac]
test eax, eax
je 0x4c9b82
mov ecx, dword [esp + 0xb0]
mov dword [esp + 0x38], eax
lea edx, [esp + 0x38]
mov dword [esp + 0x3c], ecx
lea ecx, [esp + 0xa8]
mov dword [esp + 0x40], 0
call fcn.004cc150
test byte [esp + 0xa8], 1
jne 0x4c9b82
mov eax, dword [esp + 0xac]
test eax, eax
je 0x4c9b82
mov ecx, dword [esp + 0xb0]
mov edx, dword [esp + 0xb4]
mov dword [esp + 0x84], eax
mov dword [esp + 0x88], ecx
mov dword [esp + 0x8c], edx
jmp 0x4c9e66
lea ecx, [esp + 0xa8]
lea edx, [esp + 0x5c]
call fcn.004cc370
movzx eax, byte [esp + 0xa8]
cmp eax, 6
je 0x4c9e74
cmp eax, 3
jne 0x4c9e63
mov eax, dword [esp + 0x8c]
cmp eax, dword [esp + 0x88]
jne 0x4c9dfb
mov eax, dword [esp + 0x64]
mov edi, dword [esp + 4]
cmp eax, dword [esp + 0x60]
jne 0x4c9db1
jmp 0x4c9e74
mov esi, dword [esp + 0xac]
mov edi, dword [esp + 0xb0]
jmp 0x4c9e1e
cmp eax, 5
mov eax, dword [esp + 0x8c]
cmp eax, dword [esp + 0x88]
je 0x4c9deb
lea ecx, [esp + 0xa8]
lea edx, [esp + 0x84]
call fcn.004cc370
movzx eax, byte [esp + 0xa8]
cmp eax, 6
je 0x4c9deb
cmp eax, 3
jne 0x4c9e0b
cmp edi, dword [esp + 0xb0]
jne 0x4c9e0e
push edi
push dword [esp + 0xb0]
push esi
call sub.VCRUNTIME140.dll_memcmp
add esp, 0xc
test eax, eax
jne 0x4c9e0e
jmp 0x4c9e8d
cmp eax, 5
mov eax, dword [esp + 0x64]
cmp eax, dword [esp + 0x60]
jne 0x4c9db1
mov eax, dword [esp + 0xa4]
cmp eax, dword [esp + 0xa0]
jne 0x4c9d01
jmp 0x4c9b82
neg dword [esp + 0xc]
jno 0x4c9eb6
mov eax, 0x24
mov ecx, 0x1c
mov edx, 0x14
mov dword [esp + 0xc], 0x10
mov edi, 0x18
mov ebx, 0x20
jmp 0x4c9ed7
mov eax, 0x34
mov ecx, 0x28
mov edx, 0x1c
mov edi, 0x24
mov ebx, 0x30
mov dword [esp + 0xc], 0x18
mov esi, dword [esp + 8]
mov eax, dword [esi + eax]
mov ebx, dword [esi + ebx]
mov ecx, dword [esi + ecx]
mov edi, dword [esi + edi]
mov edx, dword [esi + edx]
mov dword [esp + 0x18], eax
mov eax, dword [esp + 0xc]
mov esi, dword [esi + eax]
mov eax, dword [esp + 0x18]
mov dword [esp + 0xa8], esi
mov dword [esp + 0xac], edx
mov dword [esp + 0xb0], edi
mov dword [esp + 0xb4], ecx
mov ecx, dword [esp + 0x50]
mov edx, dword [esp + 0x4c]
mov dword [esp + 0xb8], ebx
mov dword [esp + 0xbc], eax
push dword [ebp + 0x18]
lea eax, [esp + 0xac]
push eax
push dword [esp + 8]
push dword [esp + 0x1c]
call fcn.004cb950
add esp, 0x10
cmp al, 0x46
jne 0x4cabe1
cmp byte [esp + 0x26], 0
mov ecx, dword [ebp + 0xc]
mov esi, dword [esp + 0x20]
mov ebx, dword [esp + 0x1c]
jne 0x4c9f81
mov edx, dword [esp + 8]
xor edi, edi
xor eax, eax
cmp edi, dword [edx + 8]
seto al
shl eax, 6
cmp ecx, dword [edx + eax]
mov ecx, dword [ebp + 0x10]
sbb ecx, dword [edx + eax + 4]
jae 0x4cad30
mov eax, dword [esp + 0x54]
test eax, eax
je 0x4ca029
mov ecx, dword [esp + 0x78]
lea edx, [esp + 0xa8]
mov dword [esp + 0xa8], eax
mov dword [esp + 0xac], ecx
mov dword [esp + 0xb0], 0
lea ecx, [esp + 0x38]
push 3
call fcn.004c7790
add esp, 4
mov edx, dword [esp + 0x38]
test edx, edx
je 0x4cad05
mov esi, dword [esp + 0x3c]
xor edi, edi
mov al, 0x1a
test esi, esi
je 0x4cab9e
movzx ecx, byte [edx]
cmp cl, 7
ja 0x4cab9e
cmp esi, 1
sete ah
test cl, cl
setne ch
test ah, ch
jne 0x4cab9e
cmp esi, 1
je 0x4cb2ce
mov ah, 0xff
shl ah, cl
test cl, cl
je 0x4ca017
not ah
and ah, byte [edx + esi - 1]
jne 0x4cab9e
test byte [edx + 1], 2
mov esi, dword [esp + 0x20]
mov ebx, dword [esp + 0x1c]
je 0x4cad29
mov edx, dword [esp + 8]
lea ecx, [esp + 0xa8]
push dword [ebx + 0x10]
push dword [ebx + 0xc]
call fcn.004cc630
add esp, 8
mov eax, dword [esp + 0xa8]
mov edi, dword [esp + 0x68]
mov ecx, eax
and cl, 3
cmp cl, 2
je 0x4c9a98
cmp eax, 3
jne 0x4cacfc
movzx eax, byte [esp + 0xb0]
jmp 0x4cad0a
mov eax, dword [esp + 0x64]
cmp eax, dword [esp + 0x60]
jne 0x4cac8e
cmp dword [esp + 0x30], 0
mov ecx, dword [edx + 0x64]
mov eax, dword [edx + 0x68]
mov edx, dword [esp + 0x128]
je 0x4cabca
test edx, edx
mov dword [esp + 0x30], edx
je 0x4ca0c4
cmp edx, 6
ja 0x4cb2ce
dec edx
mov dword [esp + 0x128], edx
imul edx, edx, 0x7c
cmp dword [esi + edx], 0x80000001
je 0x4cb2ce
add edx, esi
jmp 0x4ca0d6
mov edx, dword [esp + 0x130]
mov dword [esp + 0x128], 0
test ecx, ecx
je 0x4ca07f
test eax, eax
mov dword [esp + 0x5c], ecx
mov dword [esp + 0x60], eax
mov dword [esp + 0x64], 0
mov dword [esp + 0x148], edx
je 0x4ca198
xor edi, edi
cmp byte [ecx], 0xa0
mov ecx, 0
mov dword [esp + 0x98], 0
jne 0x4ca154
lea ecx, [esp + 0xa8]
lea edx, [esp + 0x5c]
push 0xa0
call fcn.004c7790
add esp, 4
mov eax, dword [esp + 0xa8]
test eax, eax
mov dword [esp + 0x98], eax
je 0x4cacc2
mov eax, dword [esp + 0xac]
mov ecx, dword [esp + 0x64]
mov dword [esp + 0x14c], eax
mov eax, dword [esp + 0x60]
cmp ecx, eax
jae 0x4ca196
mov eax, dword [esp + 0x5c]
cmp byte [eax + ecx], 0xa1
jne 0x4ca196
lea ecx, [esp + 0xa8]
lea edx, [esp + 0x5c]
push 0xa1
call fcn.004c7790
add esp, 4
mov edi, dword [esp + 0xa8]
test edi, edi
je 0x4cacc2
mov eax, dword [esp + 0xac]
mov dword [esp + 0x78], eax
jmp 0x4ca1a5
jmp 0x4ca1a5
mov dword [esp + 0x98], 0
xor edi, edi
mov eax, dword [esp + 8]
mov dword [esp + 4], edi
mov dword [esp], eax
mov eax, dword [esp + 0x30]
test eax, eax
mov dword [esp + 0x1c], eax
je 0x4ca1e0
cmp eax, 6
ja 0x4cb2ce
lea edx, [eax - 1]
imul ecx, edx, 0x7c
cmp dword [esi + ecx], 0x80000001
je 0x4cb2ce
add ecx, esi
mov dword [esp + 0x54], edx
jmp 0x4ca1ef
mov ecx, dword [esp + 0x130]
mov dword [esp + 0x54], 0
mov edx, dword [ecx + 0x3c]
mov esi, dword [ecx + 0x40]
mov eax, dword [ecx + 0x6c]
mov ecx, dword [ecx + 0x70]
mov dword [esp + 0x40], eax
mov dword [esp + 0x44], ecx
mov dword [esp + 0x48], 0
mov dword [esp + 0x38], edx
mov edx, dword [esp]
mov dword [esp + 0x3c], esi
mov ebx, edx
test eax, eax
mov dword [esp], edx
mov dword [esp + 0xc], ebx
je 0x4ca235
mov eax, dword [esp + 0x48]
cmp eax, dword [esp + 0x44]
jne 0x4ca251
mov dword [esp + 0x40], 0
cmp dword [esp + 0x38], 0
mov esi, dword [ebp + 8]
mov dword [esp + 0x38], 0
mov byte [esp + 0x18], 1
jne 0x4ca29e
jmp 0x4ca8ab
lea ecx, [esp + 0xa8]
lea edx, [esp + 0x40]
call fcn.004cc370
movzx ecx, byte [esp + 0xa8]
movzx eax, byte [esp + 0xa9]
mov esi, dword [ebp + 8]
cmp cl, 5
mov byte [esp + 0x18], cl
je 0x4ca8cc
mov edx, dword [esp + 0xac]
mov ecx, dword [esp + 0xb0]
mov byte [esp + 0x5b], al
mov dword [esp + 0x12c], edx
mov dword [esp + 0x74], ecx
mov eax, dword [esp + 0x98]
mov edx, dword [esp + 0x14c]
mov ecx, dword [esp + 0x78]
mov byte [esp + 0xa8], 0
mov esi, 1
xor ebx, ebx
mov dword [esp + 0xac], eax
mov dword [esp + 0xb0], edx
mov byte [esp + 0xb4], 1
mov dword [esp + 0xb8], edi
mov dword [esp + 0xbc], ecx
lea ecx, [esp + 0xa8]
mov dword [esp + 0xc0], 0
mov dword [esp + 0xc4], 2
movzx edx, byte [ecx]
cmp dl, 2
mov byte [esp + 0x20], dl
je 0x4ca82b
mov edx, dword [ecx + 4]
test edx, edx
je 0x4ca320
mov eax, edx
mov edx, dword [ecx + 8]
mov ecx, esi
jmp 0x4ca340
test edi, edi
setne cl
xor bl, 1
test cl, bl
je 0x4ca82b
mov edx, dword [esp + 0x78]
mov ecx, 2
mov eax, edi
mov byte [esp + 0x20], 1
mov esi, dword [ebp + 8]
test edx, edx
mov dword [esp + 0xc0], ecx
je 0x4ca814
cmp dword [esp + 0xc], 0
mov dword [esp + 0x10], eax
mov al, 0x2e
je 0x4ca8cc
mov eax, dword [esp + 0x10]
xor ebx, ebx
mov dword [esp + 8], edx
mov dword [esp + 0x150], ecx
mov dword [esp + 0x94], 0
mov dword [esp + 0x68], 0
mov edx, dword [esp + 0xc]
mov dword [esp], edx
dec edx
cmp ebx, dword [esp + 8]
mov ch, 0x1a
jae 0x4ca886
mov cl, byte [eax + ebx]
dec dword [esp]
mov eax, ecx
not al
test al, 0x1f
je 0x4ca883
lea eax, [ebx + 1]
cmp eax, dword [esp + 8]
jae 0x4ca883
mov eax, dword [esp + 0x10]
mov dword [esp + 0xc], edx
lea edi, [ebx + 2]
movsx edx, byte [eax + ebx + 1]
test edx, edx
jns 0x4ca506
movzx eax, dl
add eax, 0xffffff7f
cmp eax, 3
ja 0x4ca87f
mov eax, dword [eax*4 + 0x4cb2d0]
mov edx, dword [esp + 8]
add eax, dword [esp + 0x28]
jmp eax
mov ebx, edi
add ebx, edx
jb 0x4ca87f
cmp cl, 0x30
jne 0x4ca87f
cmp ebx, dword [esp + 8]
ja 0x4ca87f
add edi, eax
lea ecx, [esp + 0x84]
mov dword [esp + 0x9c], edi
mov dword [esp + 0xa0], edx
lea edx, [esp + 0x9c]
mov dword [esp + 0xa4], 0
call fcn.004cc370
movzx ecx, byte [esp + 0x84]
movzx edx, byte [esp + 0x85]
cmp cl, 5
je 0x4ca839
mov eax, dword [esp + 0xa4]
cmp eax, dword [esp + 0xa0]
jne 0x4ca87d
cmp byte [esp + 0x18], 4
ja 0x4ca5cb
movzx esi, byte [esp + 0x18]
mov edi, dword [esp + 0x88]
mov eax, dword [esp + 0x8c]
mov esi, dword [esi*4 + 0x4cb2e0]
add esi, dword [esp + 0x28]
jmp esi
cmp ebx, dword [esp + 8]
je 0x4ca7e3
mov edx, dword [esp + 0xc]
mov esi, dword [ebp + 8]
mov edi, dword [esp + 4]
mov eax, dword [esp + 0x10]
add edx, 0xffffffff
jb 0x4ca38f
jmp 0x4ca8c6
mov eax, dword [ebp + 0x18]
mov edx, dword [esp + 0xc]
mov edi, dword [esp + 4]
mov dword [eax + 8], edx
test byte [esp + 0x68], 1
mov ecx, dword [esp + 0x150]
je 0x4ca80d
test byte [esp + 0x94], 1
je 0x4ca8e2
mov dword [esp + 8], edx
mov dword [esp], edx
cmp ecx, 2
mov bl, 1
lea ecx, [esp + 0xb4]
mov esi, 2
jne 0x4ca300
mov eax, dword [esp + 8]
mov ebx, dword [esp + 0xc]
mov dword [esp + 0xc], eax
jmp 0x4ca851
mov ecx, dword [esp + 0xc]
mov eax, dword [ebp + 0x18]
mov dword [eax + 8], ecx
mov edi, dword [esp + 4]
cmp dl, 0x47
mov ebx, ecx
mov dword [esp], ecx
jne 0x4ca897
mov edx, dword [esp + 0xc]
mov eax, dword [esp + 0x40]
mov dword [esp + 8], edx
mov edx, dword [esp]
test eax, eax
mov dword [esp], edx
mov dword [esp + 0xc], ebx
jne 0x4ca223
jmp 0x4ca235
mov ch, 0xc
mov edi, dword [esp + 4]
mov edx, dword [esp]
mov eax, dword [ebp + 0x18]
mov dword [esp], edx
mov dword [esp + 0xc], edx
mov dword [eax + 8], edx
mov al, ch
mov edx, eax
mov ecx, dword [esp + 0xc]
mov eax, edx
and al, 0x7e
cmp al, 0x46
mov dword [esp + 8], ecx
jne 0x4cacca
cmp dword [esp + 0x1c], 0
mov eax, dword [esp + 0x54]
mov edx, dword [esp + 0x148]
jne 0x4ca1b4
jmp 0x4ca071
xor edx, edx
mov ch, 0x2e
jmp 0x4ca886
mov ecx, dword [esp + 8]
mov dword [esp + 0xc], ecx
jmp 0x4ca895
mov esi, dword [ebp + 8]
mov al, 0x32
mov dword [esp], edx
jmp 0x4ca895
movzx ecx, al
add ecx, 0xffffffd2
cmp ecx, 3
ja 0x4cab9c
mov edi, 0x100
cmp ecx, 2
jne 0x4cab9e
jmp 0x4cab9c
test byte [esp + 0x27], 1
je 0x4caa22
test byte [esp + 0x17], 1
je 0x4ca97a
test edi, edi
je 0x4cac0c
imul eax, dword [esp + 0x30], 0x7c
mov ecx, dword [ebp + 8]
cmp dword [eax + ecx - 0x7c], 0x80000001
je 0x4cb2ce
lea esi, [eax + ecx - 0x7c]
jmp 0x4cac15
test edi, edi
je 0x4ca9a1
cmp edi, 6
ja 0x4cb2ce
mov eax, dword [ebp + 8]
lea ebx, [edi - 1]
imul esi, ebx, 0x7c
cmp dword [eax + esi], 0x80000001
je 0x4cb2ce
add esi, eax
jmp 0x4ca9ac
mov eax, dword [ebp + 8]
xor ebx, ebx
mov esi, dword [eax + 0x2e8]
mov ecx, dword [esp + 0x50]
mov edx, dword [esp + 0x4c]
lea eax, [esi + 0x14]
push dword [ebp + 0x18]
push eax
push dword [esp + 8]
push dword [esp + 0x1c]
call fcn.004cb950
add esp, 0x10
cmp al, 0x46
jne 0x4cab85
mov eax, dword [esp + 4]
cmp dword [esi + 0x30], eax
jne 0x4cb2ce
push eax
push dword [esp + 0xc]
push dword [esi + 0x2c]
call sub.VCRUNTIME140.dll_memcmp
add esp, 0xc
test eax, eax
jne 0x4cb2ce
mov ecx, dword [esi + 0x48]
mov eax, dword [esi + 0x44]
mov edx, dword [esi + 0x3c]
test edi, edi
mov edi, ebx
mov dword [esp], ecx
mov ecx, dword [esi + 0x40]
mov dword [esp + 0x10], eax
mov dword [esp + 8], edx
mov dword [esp + 4], ecx
jne 0x4ca97a
jmp 0x4c9a33
test byte [esp + 0x17], 1
je 0x4caae1
mov edi, dword [esp + 0x30]
test edi, edi
je 0x4caa58
cmp edi, 6
ja 0x4cb2ce
mov eax, dword [ebp + 8]
mov ebx, edi
dec edi
imul esi, edi, 0x7c
cmp dword [eax + esi], 0x80000001
je 0x4cb2ce
add esi, eax
jmp 0x4caa65
mov eax, dword [ebp + 8]
mov ebx, edi
xor edi, edi
mov esi, dword [eax + 0x2e8]
mov ecx, dword [esp + 0x50]
mov edx, dword [esp + 0x4c]
lea eax, [esi + 0x14]
push dword [ebp + 0x18]
push eax
push dword [esp + 8]
push dword [esp + 0x1c]
call fcn.004cb950
add esp, 0x10
cmp al, 0x46
jne 0x4cab85
mov eax, dword [esp + 4]
cmp dword [esi + 0x30], eax
jne 0x4cb2ce
push eax
push dword [esp + 0xc]
push dword [esi + 0x2c]
call sub.VCRUNTIME140.dll_memcmp
add esp, 0xc
test eax, eax
jne 0x4cb2ce
test ebx, ebx
je 0x4cac85
mov ecx, dword [esi + 0x48]
mov eax, dword [esi + 0x44]
mov edx, dword [esi + 0x3c]
mov dword [esp], ecx
mov ecx, dword [esi + 0x40]
mov dword [esp + 0x10], eax
mov dword [esp + 8], edx
mov dword [esp + 4], ecx
test edi, edi
jne 0x4caa35
jmp 0x4caa58
test edi, edi
je 0x4cab08
cmp edi, 6
ja 0x4cb2ce
mov eax, dword [ebp + 8]
lea ebx, [edi - 1]
imul esi, ebx, 0x7c
cmp dword [eax + esi], 0x80000001
je 0x4cb2ce
add esi, eax
jmp 0x4cab13
mov eax, dword [ebp + 8]
xor ebx, ebx
mov esi, dword [eax + 0x2e8]
mov ecx, dword [esp + 0x50]
mov edx, dword [esp + 0x4c]
lea eax, [esi + 0x14]
push dword [ebp + 0x18]
push eax
push dword [esp + 8]
push dword [esp + 0x1c]
call fcn.004cb950
add esp, 0x10
cmp al, 0x46
jne 0x4cab85
mov eax, dword [esp + 4]
cmp dword [esi + 0x30], eax
jne 0x4cb2ce
push eax
push dword [esp + 0xc]
push dword [esi + 0x2c]
call sub.VCRUNTIME140.dll_memcmp
add esp, 0xc
test eax, eax
jne 0x4cb2ce
mov ecx, dword [esi + 0x48]
mov eax, dword [esi + 0x44]
mov edx, dword [esi + 0x3c]
test edi, edi
mov edi, ebx
mov dword [esp], ecx
mov ecx, dword [esi + 0x40]
mov dword [esp + 0x10], eax
mov dword [esp + 8], edx
mov dword [esp + 4], ecx
jne 0x4caae1
jmp 0x4c9a33
movzx ecx, al
add ecx, 0xffffffd2
cmp ecx, 3
ja 0x4cab9c
cmp ecx, 2
je 0x4cab9c
mov edi, 0x100
jmp 0x4cab9e
xor edi, edi
mov edx, dword [esp + 0x34]
mov esi, dword [ebp + 8]
movzx eax, al
shl eax, 0x10
and edx, 0xff000000
or edx, edi
lea edx, [eax + edx + 1]
movzx ecx, byte [esp + 0x15]
test dl, 1
jne 0x4c9954
jmp 0x4cad57
mov edx, dword [esp + 0x34]
mov eax, dword [esp + 0x6c]
and edx, 0xffffff00
mov dword [esp + 0x124], eax
jmp 0x4cabb7
movzx ecx, al
cmp ecx, 0x29
je 0x4cac94
cmp ecx, 0x43
je 0x4cac98
cmp ecx, 0x45
jne 0x4cac9a
mov al, 0x44
jmp 0x4cac9a
xor edi, edi
mov al, 0x38
jmp 0x4cab9e
mov eax, dword [ebp + 8]
mov esi, dword [eax + 0x2e8]
mov ecx, dword [esp + 0x50]
mov edx, dword [esp + 0x4c]
lea eax, [esi + 0x14]
push dword [ebp + 0x18]
push eax
push dword [esp + 8]
push dword [esp + 0x1c]
call fcn.004cb950
add esp, 0x10
movzx ecx, al
lea edx, [ecx - 0x2e]
cmp edx, 2
jb 0x4cab95
cmp ecx, 0x31
je 0x4cab95
xor edi, edi
cmp ecx, 0x46
jne 0x4cab9e
mov eax, dword [esp + 4]
cmp dword [esi + 0x30], eax
jne 0x4cb2ce
push eax
push dword [esp + 0xc]
push dword [esi + 0x2c]
call sub.VCRUNTIME140.dll_memcmp
add esp, 0xc
mov ecx, eax
mov al, 0x38
test ecx, ecx
je 0x4cab9e
jmp 0x4cb2ce
mov eax, dword [esp + 0x13c]
jmp 0x4cad0a
xor eax, eax
mov dl, 0x1a
jmp 0x4cace1
mov al, 0x28
jmp 0x4cac9a
mov al, 0x42
xor edi, edi
cmp al, 0x29
je 0x4cacbb
movzx ecx, al
cmp ecx, 0x45
je 0x4cacb4
cmp ecx, 0x43
jne 0x4cad0a
mov al, 0x42
jmp 0x4cab9e
mov al, 0x44
jmp 0x4cab9e
mov al, 0x28
jmp 0x4cab9e
movzx edx, byte [esp + 0xac]
movzx ecx, dl
xor eax, eax
add ecx, 0xffffffd2
cmp ecx, 3
ja 0x4cace1
cmp ecx, 2
je 0x4cace1
mov eax, 0x100
mov ecx, dword [esp + 0x34]
movzx edi, dl
shl edi, 0x10
and ecx, 0xff000000
or ecx, eax
lea edx, [edi + ecx + 1]
jmp 0x4cabb7
xor edi, edi
mov al, 0x20
jmp 0x4cab9e
movzx eax, byte [esp + 0x3c]
movzx ecx, al
xor edi, edi
add ecx, 0xffffffd2
cmp ecx, 3
ja 0x4cab9e
cmp ecx, 2
jne 0x4cab95
jmp 0x4cab9e
mov al, 0x2a
jmp 0x4cab9e
mov al, 0x21
jmp 0x4cab9e
movzx edx, byte [esp + 0x3c]
jmp 0x4c9694
mov dl, 0x34
jmp 0x4c9694
mov dl, 0x34
xor eax, eax
jmp 0x4c96a8
xor eax, eax
mov dl, 0x37
jmp 0x4cad85
mov ecx, dword [esp + 0x124]
jmp 0x4cb26f
mov ecx, dword [esp + 0x124]
jmp 0x4cad8f
mov edx, ecx
movzx ecx, cl
xor eax, eax
add ecx, 0xffffffd2
cmp ecx, 3
ja 0x4cad85
cmp ecx, 2
je 0x4cad85
mov eax, 0x100
movzx ecx, dl
shl ecx, 0x10
lea edx, [ecx + eax + 1]
test dl, 1
je 0x4cb26f
test edx, 0x100
jne 0x4cb27e
mov ecx, dword [esp + 0x80]
shr edx, 0x10
mov dword [esp + 0x34], edx
mov eax, dword [ecx + 0x2c]
test eax, eax
je 0x4cb28c
cmp dword [esp + 0x2c], 1
mov edi, dword [ecx + 0x28]
lea eax, [eax + eax*2]
sbb dword [esp + 0x134], 0xffffffff
lea ebx, [edi + eax*4]
mov dword [esp + 0x1c], ebx
mov edx, dword [edi + 4]
lea ecx, [esp + 0xa8]
push dword [edi + 8]
call fcn.004c80e0
add esp, 4
mov ecx, dword [esp + 0xa8]
movzx eax, byte [esp + 0xac]
cmp ecx, 0x80000001
jne 0x4cae31
mov edx, eax
xor ecx, ecx
add dl, 0xd2
cmp dl, 4
jae 0x4cae19
movzx ecx, dl
mov ecx, dword [ecx*4 + 0x772970]
mov edx, dword [esp + 0x28]
shl eax, 0x10
and edx, 0xff000000
or edx, ecx
lea edx, [eax + edx + 1]
jmp 0x4cafd3
lea ebx, [esp + 0xb0]
mov dword [esp], ecx
movzx ecx, byte [esp + 0xaf]
movsd xmm1, qword [ebx + 8]
movsd xmm2, qword [ebx + 0x10]
mov edx, dword [ebx + 0x30]
movsd xmm0, qword [ebx]
mov dword [esp + 8], ecx
movzx ecx, word [esp + 0xad]
movsd qword [esp + 0x160], xmm1
movsd xmm1, qword [ebx + 0x18]
movsd qword [esp + 0x168], xmm2
movsd xmm2, qword [ebx + 0x20]
mov dword [esp + 0x188], edx
mov edx, dword [esp + 0xe4]
movsd qword [esp + 0x158], xmm0
movsd qword [esp + 0x170], xmm1
movsd xmm1, qword [ebx + 0x28]
movsd qword [esp + 0x178], xmm2
movsd xmm2, qword [ebx + 0x6c]
mov dword [esp + 4], edx
mov edx, dword [esp + 0xe8]
movsd qword [esp + 0x180], xmm1
movsd xmm1, qword [ebx + 0x64]
movsd qword [esp + 0x1b8], xmm2
movsd xmm2, qword [ebx + 0x5c]
mov dword [esp + 0xc], edx
mov edx, dword [esp + 0xec]
movsd qword [esp + 0x1b0], xmm1
movsd xmm1, qword [ebx + 0x54]
movsd qword [esp + 0x1a8], xmm2
movsd xmm2, qword [ebx + 0x44]
mov dword [esp + 0x10], edx
mov edx, dword [esp + 0xf0]
movsd qword [esp + 0x1a0], xmm1
movsd xmm1, qword [ebx + 0x4c]
mov ebx, dword [esi + 0x2ec]
movsd qword [esp + 0x190], xmm2
mov dword [esp + 0x2c], edx
test ebx, ebx
movsd qword [esp + 0x198], xmm1
mov dword [esp + 0x20], ebx
je 0x4caf5a
cmp ebx, 6
ja 0x4cb2ce
imul edx, ebx, 0x7c
cmp dword [edx + esi - 0x7c], 0x80000001
je 0x4cb2ce
lea edx, [edx + esi - 0x7c]
jmp 0x4caf60
mov edx, dword [esi + 0x2e8]
mov ebx, dword [esp + 8]
shl ecx, 8
mov dword [esp + 0x7c], 0x370001
mov dword [esp + 0x18], edi
shl ebx, 0x18
or ebx, ecx
or ebx, eax
mov eax, dword [esp + 0xc]
mov dword [esp + 8], ebx
cmp eax, dword [edx + 0x30]
jne 0x4caf9b
push eax
push dword [edx + 0x2c]
push dword [esp + 0xc]
call sub.VCRUNTIME140.dll_memcmp
add esp, 0xc
test eax, eax
je 0x4cb00f
mov edx, dword [esp + 0x28]
and edx, 0xff000000
add edx, dword [esp + 0x7c]
test dword [esp], 0x7fffffff
je 0x4cafc8
push dword [esp + 8]
push 0
push dword [0x776180]
mov esi, edx
call dword [sym.imp.KERNEL32.dll_HeapFree]
mov edx, esi
mov esi, dword [ebp + 8]
mov edi, dword [esp + 0x18]
mov ebx, dword [esp + 0x1c]
mov eax, dword [esp + 0x34]
test dl, 1
je 0x4cb2ba
test edx, 0x100
jne 0x4cb2c4
mov dword [esp + 0x28], edx
shr edx, 0x10
movzx ecx, al
add edi, 0xc
call fcn.004cd1d0
cmp edi, ebx
mov dword [esp + 0x34], eax
jne 0x4cadd7
jmp 0x4cb28c
mov edi, dword [esp + 0x20]
test edi, edi
je 0x4cb028
imul eax, edi, 0x7c
cmp dword [eax + esi - 0x7c], 0x80000001
je 0x4cb2ce
mov eax, dword [esi + 0x2e8]
mov edx, dword [esp + 0x28]
mov ecx, dword [esp + 0x2c]
mov dword [esp + 0x6c], eax
jmp 0x4cb042
test edi, edi
mov edi, esi
je 0x4cb0bd
test edi, edi
je 0x4cb060
mov eax, dword [ebp + 8]
lea esi, [edi - 1]
imul ebx, esi, 0x7c
cmp dword [eax + ebx], 0x80000001
je 0x4cb2ce
add ebx, eax
jmp 0x4cb066
mov ebx, dword [esp + 0x6c]
xor esi, esi
cmp ecx, dword [ebx + 0x48]
jne 0x4cb03c
push ecx
push dword [ebx + 0x44]
push dword [esp + 0x18]
call sub.VCRUNTIME140.dll_memcmp
mov ecx, dword [esp + 0x38]
mov edx, dword [esp + 0x34]
add esp, 0xc
test eax, eax
jne 0x4cb03c
mov eax, dword [esp + 0xc]
cmp eax, dword [ebx + 0x40]
jne 0x4cb03c
push dword [esp + 0xc]
push dword [ebx + 0x3c]
push dword [esp + 0xc]
call sub.VCRUNTIME140.dll_memcmp
mov ecx, dword [esp + 0x38]
mov edx, dword [esp + 0x34]
add esp, 0xc
test edi, edi
je 0x4cb0b5
test eax, eax
mov edi, esi
jne 0x4cb042
test eax, eax
je 0x4caf9f
mov eax, dword [ebp + 0x18]
mov eax, dword [eax + 4]
test eax, eax
je 0x4cb105
dec eax
mov ecx, dword [ebp + 0x18]
cmp dword [esp + 0x20], 6
mov dword [ecx + 4], eax
jb 0x4cb112
test dword [esp], 0x7fffffff
je 0x4cb0f0
push dword [esp + 8]
push 0
push dword [0x776180]
call dword [sym.imp.KERNEL32.dll_HeapFree]
mov edx, dword [esp + 0x28]
and edx, 0xff000000
or edx, 0x300001
jmp 0x4cafc8
mov dword [esp + 0x7c], 0x2f0101
jmp 0x4caf9f
imul eax, dword [esp + 0x20], 0x7c
mov ecx, dword [ebp + 8]
lea ebx, [ecx + eax]
mov eax, dword [ecx + eax]
cmp eax, 0x80000002
jl 0x4cb13c
test eax, eax
je 0x4cb13c
push dword [ebx + 4]
push 0
push dword [0x776180]
call dword [sym.imp.KERNEL32.dll_HeapFree]
mov eax, dword [esp]
movsd xmm0, qword [esp + 0x158]
movsd xmm1, qword [esp + 0x160]
movsd xmm2, qword [esp + 0x1a0]
mov edx, dword [esp + 0x80]
lea ecx, [esp + 0xa8]
mov dword [ebx], eax
mov eax, dword [esp + 8]
mov dword [ebx + 4], eax
movsd qword [ebx + 8], xmm0
movsd xmm0, qword [esp + 0x168]
mov eax, dword [esp + 0x188]
movsd qword [ebx + 0x10], xmm1
movsd xmm1, qword [esp + 0x198]
movsd qword [ebx + 0x18], xmm0
movsd xmm0, qword [esp + 0x170]
mov dword [ebx + 0x38], eax
mov eax, dword [esp + 4]
movsd qword [ebx + 0x20], xmm0
movsd xmm0, qword [esp + 0x178]
movsd qword [ebx + 0x28], xmm0
movsd xmm0, qword [esp + 0x180]
movsd qword [ebx + 0x30], xmm0
mov dword [ebx + 0x3c], eax
mov eax, dword [esp + 0xc]
movsd xmm0, qword [esp + 0x190]
mov dword [ebx + 0x40], eax
mov eax, dword [esp + 0x10]
mov dword [ebx + 0x44], eax
mov eax, dword [esp + 0x2c]
mov dword [ebx + 0x48], eax
movsd qword [ebx + 0x54], xmm1
movsd xmm1, qword [esp + 0x1a8]
movsd qword [ebx + 0x5c], xmm2
movsd xmm2, qword [esp + 0x1b0]
mov eax, dword [ebp + 8]
movsd qword [ebx + 0x4c], xmm0
movsd qword [ebx + 0x64], xmm1
movsd xmm1, qword [esp + 0x1b8]
movsd qword [ebx + 0x6c], xmm2
movsd qword [ebx + 0x74], xmm1
inc dword [eax + 0x2ec]
push dword [ebp + 0x18]
push dword [esp + 0x138]
push dword [ebp + 0x10]
push dword [ebp + 0xc]
push eax
call fcn.004c94b0
add esp, 0x14
cmp byte [esp + 0xa8], 1
jne 0x4cb258
mov ecx, dword [ebp + 8]
call fcn.004cd210
mov edx, dword [esp + 0xa8]
mov eax, dword [esp + 0xac]
mov dword [esp + 0x54], eax
jmp 0x4cafc8
mov eax, dword [esp + 0x70]
mov dword [eax + 4], ecx
mov byte [eax], 0
jmp 0x4c96b5
mov eax, dword [esp + 0x70]
mov dword [eax], edx
mov dword [eax + 4], ecx
jmp 0x4c96b5
mov ebx, dword [esp + 0x34]
mov edx, 0x1000101
mov eax, ebx
add al, 0xd2
movzx ecx, al
shl ecx, 3
shr edx, cl
xor ecx, ecx
cmp al, 4
cmovb ecx, edx
mov edx, dword [esp + 0x70]
mov byte [edx + 1], cl
mov byte [edx + 2], bl
mov byte [edx], 1
jmp 0x4c96b5
mov eax, dword [esp + 0x70]
mov ecx, dword [esp + 0x54]
jmp 0x4cb273
mov eax, dword [esp + 0x70]
mov ecx, dword [esp + 0x54]
jmp 0x4cb282
ud2