Function at 0x4d3be0
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 0x4d3bfb
pop eax
mov ebx, edx
mov dword [esp + 0x28], eax
mov esi, dword [ecx + 0x2ec]
test esi, esi
je 0x4d3c2c
cmp esi, 6
ja 0x4d59fe
imul eax, esi, 0x7c
cmp dword [eax + ecx - 0x7c], 0x80000001
je 0x4d59fe
lea edi, [eax + ecx - 0x7c]
jmp 0x4d3c32
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 0x4d3c78
cmp byte [eax], 0x17
jne 0x4d3c78
lea ecx, [esp + 0xa8]
lea edx, [esp + 0x38]
push 1
push 0x17
call fcn.004d5a30
add esp, 8
cmp byte [esp + 0xa8], 0
jne 0x4d3dbc
jmp 0x4d3c9d
lea ecx, [esp + 0xa8]
lea edx, [esp + 0x38]
push 0
push 0x18
call fcn.004d5a30
add esp, 8
cmp byte [esp + 0xa8], 0
jne 0x4d3dbc
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 0x4d3d97
mov ecx, dword [esp + 0x38]
cmp byte [ecx + eax], 0x17
jne 0x4d3d97
lea ecx, [esp + 0xa8]
lea edx, [esp + 0x38]
push 1
push 0x17
call fcn.004d5a30
add esp, 8
cmp byte [esp + 0xa8], 0
jne 0x4d3dbc
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 0x4d3dc4
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 0x4d3dc4
cmp ecx, edi
mov dl, 0x1d
sbb eax, esi
jb 0x4d3dc4
mov eax, dword [esp + 0x40]
mov dl, 0x1a
cmp eax, dword [esp + 0x3c]
jne 0x4d3f7d
mov eax, dword [ebp + 0x14]
mov edi, dword [esp + 8]
mov dword [esp + 0x134], eax
mov eax, dword [edi + 0x4c]
test eax, eax
je 0x4d3ded
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.004d20d0
mov esi, dword [ebp + 8]
test al, 1
mov eax, edx
je 0x4d3e01
mov edx, eax
jmp 0x4d3dc4
lea ecx, [esp + 0xa8]
lea edx, [esp + 0x38]
push 0
push 0x18
call fcn.004d5a30
add esp, 8
cmp byte [esp + 0xa8], 0
je 0x4d3cf4
movzx edx, byte [esp + 0xa9]
movzx ecx, dl
xor eax, eax
add ecx, 0xffffffd2
cmp ecx, 3
ja 0x4d3dd8
cmp ecx, 2
je 0x4d3dd8
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 0x4d3ede
mov dl, 0x22
xor eax, eax
jmp 0x4d3dd8
mov eax, dword [esp + 0xb0]
cmp eax, dword [esp + 0xac]
jne 0x4d3e2c
cmp dword [esp + 0x2c], 0
je 0x4d3ebd
mov al, 0x22
test dl, 1
je 0x4d3d93
jmp 0x4d3ec8
mov bh, dl
lea ecx, [esp + 0x38]
lea edx, [esp + 0xa8]
push 2
call fcn.004d1ec0
add esp, 4
mov esi, dword [esp + 0x38]
test esi, esi
je 0x4d3e76
mov edx, dword [esp + 0x3c]
mov al, 0x1a
test edx, edx
je 0x4d3d93
movzx ecx, byte [esi]
test cl, cl
je 0x4d3e80
mov esi, dword [ebp + 8]
js 0x4d3d93
cmp edx, 1
mov dl, bh
jne 0x4d3d93
jmp 0x4d3e9b
movzx eax, byte [esp + 0x3c]
jmp 0x4d3d93
dec edx
je 0x4d3e94
movzx ecx, byte [esi + 1]
mov esi, dword [ebp + 8]
test cl, cl
jns 0x4d3d93
jmp 0x4d3e69
mov esi, dword [ebp + 8]
xor ecx, ecx
mov dl, bh
cmp dword [esp + 0x2c], 0
je 0x4d3ebd
mov al, 0x22
test dl, 1
je 0x4d3d93
movzx ecx, cl
mov al, 0x33
cmp ecx, dword [ebp + 0x14]
jb 0x4d3d93
jmp 0x4d3ec8
mov al, 0x1c
test dl, 1
jne 0x4d3d93
mov eax, dword [esp + 0xb0]
mov dl, 0x1a
cmp eax, dword [esp + 0xac]
jne 0x4d3f7d
mov eax, dword [edi + 0x5c]
test eax, eax
je 0x4d3f84
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 0x4d3f2a
mov eax, dword [esp + 0xb0]
cmp eax, dword [esp + 0xac]
je 0x4d5471
lea ecx, [esp + 0x38]
lea edx, [esp + 0xa8]
push 6
call fcn.004d1ec0
add esp, 4
mov eax, dword [esp + 0x38]
test eax, eax
je 0x4d5467
cmp edi, dword [esp + 0x3c]
jne 0x4d3f16
push edi
push eax
push esi
call sub.VCRUNTIME140.dll_memcmp
add esp, 0xc
test eax, eax
jne 0x4d3f16
mov eax, dword [esp + 0xac]
mov ecx, dword [esp + 0xb0]
sub eax, ecx
add eax, ecx
jb 0x4d59fe
mov esi, dword [ebp + 8]
jmp 0x4d3f94
xor eax, eax
jmp 0x4d3dd8
mov ebx, dword [esp + 0x80]
test byte [ebx], 1
je 0x4d5478
mov eax, dword [ebx + 0x24]
test eax, eax
je 0x4d5481
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 0x4d403f
cmp eax, 6
ja 0x4d59fe
mov edi, eax
imul eax, eax, 0x7c
cmp dword [eax + esi - 0x7c], 0x80000001
je 0x4d59fe
lea eax, [eax + esi - 0x7c]
jmp 0x4d4047
mov edi, eax
mov eax, dword [esi + 0x2e8]
cmp dword [eax + 0x30], edx
jne 0x4d406b
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 0x4d40ba
mov edx, dword [esp + 0x34]
and edx, 0xff000000
or edx, 0x370001
test dl, 1
je 0x4d5487
test edx, 0x100
jne 0x4d5493
mov edi, dword [esp + 0x6c]
mov dword [esp + 0x34], edx
shr edx, 0x10
movzx ecx, cl
add edi, 0x24
call fcn.004d7900
cmp edi, dword [esp + 0x154]
mov ecx, eax
jne 0x4d4005
jmp 0x4d549c
test edi, edi
mov dword [esp + 4], ebx
je 0x4d40d3
imul eax, edi, 0x7c
cmp dword [eax + esi - 0x7c], 0x80000001
je 0x4d59fe
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 0x4d419b
mov esi, dword [esp + 0x30]
test esi, esi
je 0x4d411e
cmp esi, 6
ja 0x4d59fe
mov eax, dword [ebp + 8]
lea edi, [esi - 1]
imul ebx, edi, 0x7c
cmp dword [eax + ebx], 0x80000001
je 0x4d59fe
add ebx, eax
jmp 0x4d4129
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.004d6080
add esp, 0x10
cmp al, 0x46
jne 0x4d52b5
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 0x4d40f7
mov eax, dword [esp + 0x6c]
xor ecx, ecx
cmp dword [eax + 0x18], 0x80000001
je 0x4d4175
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 0x4d47c7
cmp dword [esp + 0x140], 0
mov edi, dword [esp + 0x30]
je 0x4d5071
xor ecx, ecx
jmp 0x4d41f5
test byte [esp + 0x17], 1
mov edi, dword [esp + 0x68]
mov esi, dword [esp + 0x20]
mov ebx, dword [esp + 0x1c]
jne 0x4d5336
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 0x4d4163
mov esi, edi
test edi, edi
mov dword [esp + 0x54], ecx
je 0x4d4222
cmp esi, 6
ja 0x4d59fe
mov eax, dword [ebp + 8]
lea edi, [esi - 1]
imul ebx, edi, 0x7c
cmp dword [eax + ebx], 0x80000001
je 0x4d59fe
add ebx, eax
jmp 0x4d422d
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.004d6080
add esp, 0x10
mov ecx, dword [esp + 4]
cmp al, 0x46
jne 0x4d504f
cmp dword [ebx + 0x30], ecx
jne 0x4d59fe
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 0x4d59fe
movzx ecx, byte [esp + 0x27]
test esi, esi
setne al
xor cl, 1
test al, cl
jne 0x4d41c8
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 0x4d42bf
mov edi, dword [esp + 4]
add ebx, 4
cmp ebx, dword [esp + 0x7c]
je 0x4d41b1
mov ecx, dword [ebx]
mov eax, dword [ecx + 8]
mov dword [esp + 0xc], eax
neg eax
jno 0x4d42fe
cmp dword [ecx + 0x2c], edi
jne 0x4d42b2
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 0x4d42b2
mov edx, dword [esi + 0x38]
mov eax, 0x3c
test edx, edx
jne 0x4d4332
jmp 0x4d45c3
cmp dword [ecx + 0x10], edi
jne 0x4d42b2
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 0x4d42b2
xor eax, eax
cmp eax, dword [esi + 0x38]
jo 0x4d45e6
mov edx, dword [esi + 0x3c]
mov eax, 0x40
lea ecx, [esp + 0xa8]
mov dword [esp + 8], esi
push dword [esi + eax]
call fcn.004d6220
add esp, 4
movzx eax, byte [esp + 0xbb]
cmp al, 2
je 0x4d42b2
test al, 1
jne 0x4d59fe
cmp dword [esp + 0x20], 0
sete al
test byte [esp + 0xb9], al
jne 0x4d42b2
movzx ecx, byte [esp + 0xb8]
xor cl, 1
or al, cl
test al, 1
je 0x4d42b2
mov eax, dword [esp + 0x1c]
mov esi, dword [eax + 0x74]
test esi, esi
je 0x4d45bd
mov eax, dword [esp + 0xa8]
test eax, eax
je 0x4d42ae
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.004d6880
mov eax, dword [esp + 0xac]
test eax, eax
sete cl
or cl, byte [esp + 0xa8]
test cl, 1
jne 0x4d42ae
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 0x4d42b2
lea ecx, [esp + 0xa8]
lea edx, [esp + 0x9c]
call fcn.004d2310
test byte [esp + 0xa8], 1
jne 0x4d42b2
mov eax, dword [esp + 0xb4]
or eax, dword [esp + 0xbc]
jne 0x4d42b2
mov eax, dword [esp + 0xac]
test eax, eax
je 0x4d42b2
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.004d6880
test byte [esp + 0xa8], 1
jne 0x4d42b2
mov eax, dword [esp + 0xac]
test eax, eax
je 0x4d42b2
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 0x4d4596
lea ecx, [esp + 0xa8]
lea edx, [esp + 0x5c]
call fcn.004d6aa0
movzx eax, byte [esp + 0xa8]
cmp eax, 6
je 0x4d45a4
cmp eax, 3
jne 0x4d4593
mov eax, dword [esp + 0x8c]
cmp eax, dword [esp + 0x88]
jne 0x4d452b
mov eax, dword [esp + 0x64]
mov edi, dword [esp + 4]
cmp eax, dword [esp + 0x60]
jne 0x4d44e1
jmp 0x4d45a4
mov esi, dword [esp + 0xac]
mov edi, dword [esp + 0xb0]
jmp 0x4d454e
cmp eax, 5
mov eax, dword [esp + 0x8c]
cmp eax, dword [esp + 0x88]
je 0x4d451b
lea ecx, [esp + 0xa8]
lea edx, [esp + 0x84]
call fcn.004d6aa0
movzx eax, byte [esp + 0xa8]
cmp eax, 6
je 0x4d451b
cmp eax, 3
jne 0x4d453b
cmp edi, dword [esp + 0xb0]
jne 0x4d453e
push edi
push dword [esp + 0xb0]
push esi
call sub.VCRUNTIME140.dll_memcmp
add esp, 0xc
test eax, eax
jne 0x4d453e
jmp 0x4d45bd
cmp eax, 5
mov eax, dword [esp + 0x64]
cmp eax, dword [esp + 0x60]
jne 0x4d44e1
mov eax, dword [esp + 0xa4]
cmp eax, dword [esp + 0xa0]
jne 0x4d4431
jmp 0x4d42b2
neg dword [esp + 0xc]
jno 0x4d45e6
mov eax, 0x24
mov ecx, 0x1c
mov edx, 0x14
mov dword [esp + 0xc], 0x10
mov edi, 0x18
mov ebx, 0x20
jmp 0x4d4607
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.004d6080
add esp, 0x10
cmp al, 0x46
jne 0x4d5311
cmp byte [esp + 0x26], 0
mov ecx, dword [ebp + 0xc]
mov esi, dword [esp + 0x20]
mov ebx, dword [esp + 0x1c]
jne 0x4d46b1
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 0x4d5460
mov eax, dword [esp + 0x54]
test eax, eax
je 0x4d4759
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.004d1ec0
add esp, 4
mov edx, dword [esp + 0x38]
test edx, edx
je 0x4d5435
mov esi, dword [esp + 0x3c]
xor edi, edi
mov al, 0x1a
test esi, esi
je 0x4d52ce
movzx ecx, byte [edx]
cmp cl, 7
ja 0x4d52ce
cmp esi, 1
sete ah
test cl, cl
setne ch
test ah, ch
jne 0x4d52ce
cmp esi, 1
je 0x4d59fe
mov ah, 0xff
shl ah, cl
test cl, cl
je 0x4d4747
not ah
and ah, byte [edx + esi - 1]
jne 0x4d52ce
test byte [edx + 1], 2
mov esi, dword [esp + 0x20]
mov ebx, dword [esp + 0x1c]
je 0x4d5459
mov edx, dword [esp + 8]
lea ecx, [esp + 0xa8]
push dword [ebx + 0x10]
push dword [ebx + 0xc]
call fcn.004d6d60
add esp, 8
mov eax, dword [esp + 0xa8]
mov edi, dword [esp + 0x68]
mov ecx, eax
and cl, 3
cmp cl, 2
je 0x4d41c8
cmp eax, 3
jne 0x4d542c
movzx eax, byte [esp + 0xb0]
jmp 0x4d543a
mov eax, dword [esp + 0x64]
cmp eax, dword [esp + 0x60]
jne 0x4d53be
cmp dword [esp + 0x30], 0
mov ecx, dword [edx + 0x64]
mov eax, dword [edx + 0x68]
mov edx, dword [esp + 0x128]
je 0x4d52fa
test edx, edx
mov dword [esp + 0x30], edx
je 0x4d47f4
cmp edx, 6
ja 0x4d59fe
dec edx
mov dword [esp + 0x128], edx
imul edx, edx, 0x7c
cmp dword [esi + edx], 0x80000001
je 0x4d59fe
add edx, esi
jmp 0x4d4806
mov edx, dword [esp + 0x130]
mov dword [esp + 0x128], 0
test ecx, ecx
je 0x4d47af
test eax, eax
mov dword [esp + 0x5c], ecx
mov dword [esp + 0x60], eax
mov dword [esp + 0x64], 0
mov dword [esp + 0x148], edx
je 0x4d48c8
xor edi, edi
cmp byte [ecx], 0xa0
mov ecx, 0
mov dword [esp + 0x98], 0
jne 0x4d4884
lea ecx, [esp + 0xa8]
lea edx, [esp + 0x5c]
push 0xa0
call fcn.004d1ec0
add esp, 4
mov eax, dword [esp + 0xa8]
test eax, eax
mov dword [esp + 0x98], eax
je 0x4d53f2
mov eax, dword [esp + 0xac]
mov ecx, dword [esp + 0x64]
mov dword [esp + 0x14c], eax
mov eax, dword [esp + 0x60]
cmp ecx, eax
jae 0x4d48c6
mov eax, dword [esp + 0x5c]
cmp byte [eax + ecx], 0xa1
jne 0x4d48c6
lea ecx, [esp + 0xa8]
lea edx, [esp + 0x5c]
push 0xa1
call fcn.004d1ec0
add esp, 4
mov edi, dword [esp + 0xa8]
test edi, edi
je 0x4d53f2
mov eax, dword [esp + 0xac]
mov dword [esp + 0x78], eax
jmp 0x4d48d5
jmp 0x4d48d5
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 0x4d4910
cmp eax, 6
ja 0x4d59fe
lea edx, [eax - 1]
imul ecx, edx, 0x7c
cmp dword [esi + ecx], 0x80000001
je 0x4d59fe
add ecx, esi
mov dword [esp + 0x54], edx
jmp 0x4d491f
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 0x4d4965
mov eax, dword [esp + 0x48]
cmp eax, dword [esp + 0x44]
jne 0x4d4981
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 0x4d49ce
jmp 0x4d4fdb
lea ecx, [esp + 0xa8]
lea edx, [esp + 0x40]
call fcn.004d6aa0
movzx ecx, byte [esp + 0xa8]
movzx eax, byte [esp + 0xa9]
mov esi, dword [ebp + 8]
cmp cl, 5
mov byte [esp + 0x18], cl
je 0x4d4ffc
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 0x4d4f5b
mov edx, dword [ecx + 4]
test edx, edx
je 0x4d4a50
mov eax, edx
mov edx, dword [ecx + 8]
mov ecx, esi
jmp 0x4d4a70
test edi, edi
setne cl
xor bl, 1
test cl, bl
je 0x4d4f5b
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 0x4d4f44
cmp dword [esp + 0xc], 0
mov dword [esp + 0x10], eax
mov al, 0x2e
je 0x4d4ffc
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 0x4d4fb6
mov cl, byte [eax + ebx]
dec dword [esp]
mov eax, ecx
not al
test al, 0x1f
je 0x4d4fb3
lea eax, [ebx + 1]
cmp eax, dword [esp + 8]
jae 0x4d4fb3
mov eax, dword [esp + 0x10]
mov dword [esp + 0xc], edx
lea edi, [ebx + 2]
movsx edx, byte [eax + ebx + 1]
test edx, edx
jns 0x4d4c36
movzx eax, dl
add eax, 0xffffff7f
cmp eax, 3
ja 0x4d4faf
mov eax, dword [eax*4 + 0x4d5a00]
mov edx, dword [esp + 8]
add eax, dword [esp + 0x28]
jmp eax
mov ebx, edi
add ebx, edx
jb 0x4d4faf
cmp cl, 0x30
jne 0x4d4faf
cmp ebx, dword [esp + 8]
ja 0x4d4faf
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.004d6aa0
movzx ecx, byte [esp + 0x84]
movzx edx, byte [esp + 0x85]
cmp cl, 5
je 0x4d4f69
mov eax, dword [esp + 0xa4]
cmp eax, dword [esp + 0xa0]
jne 0x4d4fad
cmp byte [esp + 0x18], 4
ja 0x4d4cfb
movzx esi, byte [esp + 0x18]
mov edi, dword [esp + 0x88]
mov eax, dword [esp + 0x8c]
mov esi, dword [esi*4 + 0x4d5a10]
add esi, dword [esp + 0x28]
jmp esi
cmp ebx, dword [esp + 8]
je 0x4d4f13
mov edx, dword [esp + 0xc]
mov esi, dword [ebp + 8]
mov edi, dword [esp + 4]
mov eax, dword [esp + 0x10]
add edx, 0xffffffff
jb 0x4d4abf
jmp 0x4d4ff6
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 0x4d4f3d
test byte [esp + 0x94], 1
je 0x4d5012
mov dword [esp + 8], edx
mov dword [esp], edx
cmp ecx, 2
mov bl, 1
lea ecx, [esp + 0xb4]
mov esi, 2
jne 0x4d4a30
mov eax, dword [esp + 8]
mov ebx, dword [esp + 0xc]
mov dword [esp + 0xc], eax
jmp 0x4d4f81
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 0x4d4fc7
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 0x4d4953
jmp 0x4d4965
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 0x4d53fa
cmp dword [esp + 0x1c], 0
mov eax, dword [esp + 0x54]
mov edx, dword [esp + 0x148]
jne 0x4d48e4
jmp 0x4d47a1
xor edx, edx
mov ch, 0x2e
jmp 0x4d4fb6
mov ecx, dword [esp + 8]
mov dword [esp + 0xc], ecx
jmp 0x4d4fc5
mov esi, dword [ebp + 8]
mov al, 0x32
mov dword [esp], edx
jmp 0x4d4fc5
movzx ecx, al
add ecx, 0xffffffd2
cmp ecx, 3
ja 0x4d52cc
mov edi, 0x100
cmp ecx, 2
jne 0x4d52ce
jmp 0x4d52cc
test byte [esp + 0x27], 1
je 0x4d5152
test byte [esp + 0x17], 1
je 0x4d50aa
test edi, edi
je 0x4d533c
imul eax, dword [esp + 0x30], 0x7c
mov ecx, dword [ebp + 8]
cmp dword [eax + ecx - 0x7c], 0x80000001
je 0x4d59fe
lea esi, [eax + ecx - 0x7c]
jmp 0x4d5345
test edi, edi
je 0x4d50d1
cmp edi, 6
ja 0x4d59fe
mov eax, dword [ebp + 8]
lea ebx, [edi - 1]
imul esi, ebx, 0x7c
cmp dword [eax + esi], 0x80000001
je 0x4d59fe
add esi, eax
jmp 0x4d50dc
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.004d6080
add esp, 0x10
cmp al, 0x46
jne 0x4d52b5
mov eax, dword [esp + 4]
cmp dword [esi + 0x30], eax
jne 0x4d59fe
push eax
push dword [esp + 0xc]
push dword [esi + 0x2c]
call sub.VCRUNTIME140.dll_memcmp
add esp, 0xc
test eax, eax
jne 0x4d59fe
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 0x4d50aa
jmp 0x4d4163
test byte [esp + 0x17], 1
je 0x4d5211
mov edi, dword [esp + 0x30]
test edi, edi
je 0x4d5188
cmp edi, 6
ja 0x4d59fe
mov eax, dword [ebp + 8]
mov ebx, edi
dec edi
imul esi, edi, 0x7c
cmp dword [eax + esi], 0x80000001
je 0x4d59fe
add esi, eax
jmp 0x4d5195
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.004d6080
add esp, 0x10
cmp al, 0x46
jne 0x4d52b5
mov eax, dword [esp + 4]
cmp dword [esi + 0x30], eax
jne 0x4d59fe
push eax
push dword [esp + 0xc]
push dword [esi + 0x2c]
call sub.VCRUNTIME140.dll_memcmp
add esp, 0xc
test eax, eax
jne 0x4d59fe
test ebx, ebx
je 0x4d53b5
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 0x4d5165
jmp 0x4d5188
test edi, edi
je 0x4d5238
cmp edi, 6
ja 0x4d59fe
mov eax, dword [ebp + 8]
lea ebx, [edi - 1]
imul esi, ebx, 0x7c
cmp dword [eax + esi], 0x80000001
je 0x4d59fe
add esi, eax
jmp 0x4d5243
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.004d6080
add esp, 0x10
cmp al, 0x46
jne 0x4d52b5
mov eax, dword [esp + 4]
cmp dword [esi + 0x30], eax
jne 0x4d59fe
push eax
push dword [esp + 0xc]
push dword [esi + 0x2c]
call sub.VCRUNTIME140.dll_memcmp
add esp, 0xc
test eax, eax
jne 0x4d59fe
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 0x4d5211
jmp 0x4d4163
movzx ecx, al
add ecx, 0xffffffd2
cmp ecx, 3
ja 0x4d52cc
cmp ecx, 2
je 0x4d52cc
mov edi, 0x100
jmp 0x4d52ce
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 0x4d4084
jmp 0x4d5487
mov edx, dword [esp + 0x34]
mov eax, dword [esp + 0x6c]
and edx, 0xffffff00
mov dword [esp + 0x124], eax
jmp 0x4d52e7
movzx ecx, al
cmp ecx, 0x29
je 0x4d53c4
cmp ecx, 0x43
je 0x4d53c8
cmp ecx, 0x45
jne 0x4d53ca
mov al, 0x44
jmp 0x4d53ca
xor edi, edi
mov al, 0x38
jmp 0x4d52ce
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.004d6080
add esp, 0x10
movzx ecx, al
lea edx, [ecx - 0x2e]
cmp edx, 2
jb 0x4d52c5
cmp ecx, 0x31
je 0x4d52c5
xor edi, edi
cmp ecx, 0x46
jne 0x4d52ce
mov eax, dword [esp + 4]
cmp dword [esi + 0x30], eax
jne 0x4d59fe
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 0x4d52ce
jmp 0x4d59fe
mov eax, dword [esp + 0x13c]
jmp 0x4d543a
xor eax, eax
mov dl, 0x1a
jmp 0x4d5411
mov al, 0x28
jmp 0x4d53ca
mov al, 0x42
xor edi, edi
cmp al, 0x29
je 0x4d53eb
movzx ecx, al
cmp ecx, 0x45
je 0x4d53e4
cmp ecx, 0x43
jne 0x4d543a
mov al, 0x42
jmp 0x4d52ce
mov al, 0x44
jmp 0x4d52ce
mov al, 0x28
jmp 0x4d52ce
movzx edx, byte [esp + 0xac]
movzx ecx, dl
xor eax, eax
add ecx, 0xffffffd2
cmp ecx, 3
ja 0x4d5411
cmp ecx, 2
je 0x4d5411
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 0x4d52e7
xor edi, edi
mov al, 0x20
jmp 0x4d52ce
movzx eax, byte [esp + 0x3c]
movzx ecx, al
xor edi, edi
add ecx, 0xffffffd2
cmp ecx, 3
ja 0x4d52ce
cmp ecx, 2
jne 0x4d52c5
jmp 0x4d52ce
mov al, 0x2a
jmp 0x4d52ce
mov al, 0x21
jmp 0x4d52ce
movzx edx, byte [esp + 0x3c]
jmp 0x4d3dc4
mov dl, 0x34
jmp 0x4d3dc4
mov dl, 0x34
xor eax, eax
jmp 0x4d3dd8
xor eax, eax
mov dl, 0x37
jmp 0x4d54b5
mov ecx, dword [esp + 0x124]
jmp 0x4d599f
mov ecx, dword [esp + 0x124]
jmp 0x4d54bf
mov edx, ecx
movzx ecx, cl
xor eax, eax
add ecx, 0xffffffd2
cmp ecx, 3
ja 0x4d54b5
cmp ecx, 2
je 0x4d54b5
mov eax, 0x100
movzx ecx, dl
shl ecx, 0x10
lea edx, [ecx + eax + 1]
test dl, 1
je 0x4d599f
test edx, 0x100
jne 0x4d59ae
mov ecx, dword [esp + 0x80]
shr edx, 0x10
mov dword [esp + 0x34], edx
mov eax, dword [ecx + 0x2c]
test eax, eax
je 0x4d59bc
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.004d2810
add esp, 4
mov ecx, dword [esp + 0xa8]
movzx eax, byte [esp + 0xac]
cmp ecx, 0x80000001
jne 0x4d5561
mov edx, eax
xor ecx, ecx
add dl, 0xd2
cmp dl, 4
jae 0x4d5549
movzx ecx, dl
mov ecx, dword [ecx*4 + 0x8ff938]
mov edx, dword [esp + 0x28]
shl eax, 0x10
and edx, 0xff000000
or edx, ecx
lea edx, [eax + edx + 1]
jmp 0x4d5703
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 0x4d568a
cmp ebx, 6
ja 0x4d59fe
imul edx, ebx, 0x7c
cmp dword [edx + esi - 0x7c], 0x80000001
je 0x4d59fe
lea edx, [edx + esi - 0x7c]
jmp 0x4d5690
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 0x4d56cb
push eax
push dword [edx + 0x2c]
push dword [esp + 0xc]
call sub.VCRUNTIME140.dll_memcmp
add esp, 0xc
test eax, eax
je 0x4d573f
mov edx, dword [esp + 0x28]
and edx, 0xff000000
add edx, dword [esp + 0x7c]
test dword [esp], 0x7fffffff
je 0x4d56f8
push dword [esp + 8]
push 0
push dword [0x903200]
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 0x4d59ea
test edx, 0x100
jne 0x4d59f4
mov dword [esp + 0x28], edx
shr edx, 0x10
movzx ecx, al
add edi, 0xc
call fcn.004d7900
cmp edi, ebx
mov dword [esp + 0x34], eax
jne 0x4d5507
jmp 0x4d59bc
mov edi, dword [esp + 0x20]
test edi, edi
je 0x4d5758
imul eax, edi, 0x7c
cmp dword [eax + esi - 0x7c], 0x80000001
je 0x4d59fe
mov eax, dword [esi + 0x2e8]
mov edx, dword [esp + 0x28]
mov ecx, dword [esp + 0x2c]
mov dword [esp + 0x6c], eax
jmp 0x4d5772
test edi, edi
mov edi, esi
je 0x4d57ed
test edi, edi
je 0x4d5790
mov eax, dword [ebp + 8]
lea esi, [edi - 1]
imul ebx, esi, 0x7c
cmp dword [eax + ebx], 0x80000001
je 0x4d59fe
add ebx, eax
jmp 0x4d5796
mov ebx, dword [esp + 0x6c]
xor esi, esi
cmp ecx, dword [ebx + 0x48]
jne 0x4d576c
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 0x4d576c
mov eax, dword [esp + 0xc]
cmp eax, dword [ebx + 0x40]
jne 0x4d576c
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 0x4d57e5
test eax, eax
mov edi, esi
jne 0x4d5772
test eax, eax
je 0x4d56cf
mov eax, dword [ebp + 0x18]
mov eax, dword [eax + 4]
test eax, eax
je 0x4d5835
dec eax
mov ecx, dword [ebp + 0x18]
cmp dword [esp + 0x20], 6
mov dword [ecx + 4], eax
jb 0x4d5842
test dword [esp], 0x7fffffff
je 0x4d5820
push dword [esp + 8]
push 0
push dword [0x903200]
call dword [sym.imp.kernel32.dll_HeapFree]
mov edx, dword [esp + 0x28]
and edx, 0xff000000
or edx, 0x300001
jmp 0x4d56f8
mov dword [esp + 0x7c], 0x2f0101
jmp 0x4d56cf
imul eax, dword [esp + 0x20], 0x7c
mov ecx, dword [ebp + 8]
lea ebx, [ecx + eax]
mov eax, dword [ecx + eax]
cmp eax, 0x80000002
jl 0x4d586c
test eax, eax
je 0x4d586c
push dword [ebx + 4]
push 0
push dword [0x903200]
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.004d3be0
add esp, 0x14
cmp byte [esp + 0xa8], 1
jne 0x4d5988
mov ecx, dword [ebp + 8]
call fcn.004d7940
mov edx, dword [esp + 0xa8]
mov eax, dword [esp + 0xac]
mov dword [esp + 0x54], eax
jmp 0x4d56f8
mov eax, dword [esp + 0x70]
mov dword [eax + 4], ecx
mov byte [eax], 0
jmp 0x4d3de5
mov eax, dword [esp + 0x70]
mov dword [eax], edx
mov dword [eax + 4], ecx
jmp 0x4d3de5
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 0x4d3de5
mov eax, dword [esp + 0x70]
mov ecx, dword [esp + 0x54]
jmp 0x4d59a3
mov eax, dword [esp + 0x70]
mov ecx, dword [esp + 0x54]
jmp 0x4d59b2
ud2