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

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
and esp, 0xfffffff0
sub esp, 0x260
call 0x4dd9a4
pop eax
movaps xmm0, xmmword [0x7d4d30]
mov dword [esp + 0x1d8], ecx
movzx ecx, byte [edx + 0x51]
mov ebx, dword [ebp + 0xc]
mov edi, 4
mov dword [esp + 0x21c], 0
mov dword [esp + 0x220], 4
mov dword [esp + 0x244], 0
mov dword [esp + 0x248], 4
mov dword [esp + 0x1d4], edx
mov dword [esp + 0x224], 0
mov dword [esp + 0x24c], 0
mov dword [esp + 8], 0
mov dword [esp + 0x18], eax
mov eax, dword [edx + 0x4c]
movups xmmword [esp + 0x198], xmm0
movaps xmm0, xmmword [0x7d4d40]
mov dword [esp + 0x1a8], eax
lea eax, [esp + 0x148]
mov byte [esp + 0x1ad], cl
movzx ecx, byte [edx + 0x52]
mov dword [esp + 0x1b4], eax
movzx eax, byte [edx + 0x50]
mov byte [esp + 0x1ae], al
mov byte [esp + 0x1af], cl
mov byte [esp + 0x1ac], al
mov dword [esp + 0x148], 0
mov dword [esp + 0x14c], 0
mov dword [esp + 0x150], 4
mov dword [esp + 0x154], 0
mov dword [esp + 0x158], 0
mov dword [esp + 0x15c], 0
mov dword [esp + 0x160], 4
mov dword [esp + 0x164], 0
mov dword [esp + 0x168], 0
mov dword [esp + 0x16c], 0
mov dword [esp + 0x170], 4
mov dword [esp + 0x174], 0
mov dword [esp + 0x178], 0
mov dword [esp + 0x17c], 0
mov dword [esp + 0x180], 4
mov dword [esp + 0x184], 0
mov dword [esp + 0x188], 0
mov dword [esp + 0x18c], 0
mov dword [esp + 0x190], 1
movups xmmword [esp + 0x194], xmm0
mov byte [esp + 0x1ac], al
mov dword [esp + 0x154], 0
mov dword [esp + 0x148], 0
mov dword [esp + 0x164], 0
mov dword [esp + 0x158], 0
mov dword [esp + 0x174], 0
mov dword [esp + 0x168], 0
movsd xmm0, qword [esp + 0x198]
mov eax, dword [esp + 0x1a0]
movsd qword [esp + 0x7c], xmm0
mov dword [esp + 0x84], eax
mov dword [esp + 0x78], eax
mov eax, dword [ebp + 8]
movsd qword [esp + 0xf0], xmm0
movq xmm0, qword [esp + 0x78]
movq xmm1, qword [esp + 0x80]
mov dword [esp + 0x1b8], eax
mov dword [esp + 0x1bc], ebx
movq qword [esp + 0xf8], xmm0
movq qword [esp + 0x100], xmm1
mov dword [esp + 0xe4], 0
mov dword [esp + 0xe8], 4
mov dword [esp + 0xec], 0
jmp 0x4ddc30
lea ecx, [esp + 0x1b4]
call fcn.0052b160
mov eax, dword [esp + 0x198]
cmp eax, ebx
je 0x4de870
mov ecx, dword [ebp + 8]
mov edx, ebx
push eax
call fcn.0052b380
add esp, 4
lea ecx, [eax - 0x28]
cmp ecx, 0x33
ja 0x4ddcd0
mov eax, dword [ecx*4 + 0x4e1428]
add eax, dword [esp + 0x18]
jmp eax
cmp eax, 0x7b
je 0x4de1d1
cmp eax, 0x7c
jne 0x4ddd3f
movsd xmm1, qword [esp + 0xf4]
mov eax, dword [esp + 0x104]
movsd xmm0, qword [esp + 0xfc]
movq xmm2, qword [esp + 0xe4]
lea ecx, [esp + 0x70]
lea edx, [esp + 0x1b4]
movsd qword [esp + 0x58], xmm1
movsd xmm1, qword [esp + 0xec]
mov dword [esp + 0x68], eax
lea eax, [esp + 0x48]
movsd qword [esp + 0x60], xmm0
movq qword [esp + 0x48], xmm2
movsd qword [esp + 0x50], xmm1
push eax
call fcn.0052da60
jmp 0x4de22d
mov ecx, dword [ebp + 8]
mov edx, ebx
push dword [esp + 0x198]
call fcn.0052b380
add esp, 4
mov ebx, eax
cmp eax, 0x5b
jg 0x4de2c1
cmp ebx, 0x24
je 0x4de497
cmp ebx, 0x2e
jne 0x4de3ad
mov ebx, dword [ebp + 0xc]
mov esi, dword [esp + 0x198]
mov ecx, dword [ebp + 8]
mov edx, ebx
push esi
call fcn.0052b380
add esp, 4
mov ecx, 1
cmp eax, 0x80
jb 0x4dddad
mov ecx, 2
cmp eax, 0x800
jb 0x4dddad
cmp eax, 0x10000
mov ecx, 4
sbb ecx, 0
add esi, ecx
jb 0x4e112a
mov edi, dword [esp + 0x1a0]
inc edi
je 0x4e1134
mov eax, dword [esp + 0x19c]
mov ecx, dword [ebp + 8]
mov edx, ebx
mov dword [esp], eax
push dword [esp + 0x198]
call fcn.0052b380
add esp, 4
xor ebx, ebx
cmp eax, 0xa
mov eax, 1
lea ecx, [esp + 0x198]
lea edx, [esp + 0xb4]
cmove edi, eax
sete bl
mov eax, dword [ecx + 8]
movsd xmm0, qword [ecx]
lea ecx, [esp + 0x1b4]
add ebx, dword [esp]
mov dword [edx - 0x28], eax
movsd qword [edx - 0x30], xmm0
call fcn.0052ba40
mov dword [esp + 0x80], 0x80000004
mov dword [esp + 0x90], esi
mov dword [esp + 0x94], ebx
mov dword [esp + 0x98], edi
mov edi, 0x80000004
jmp 0x4de571
movsd xmm1, qword [esp + 0xf4]
mov eax, dword [esp + 0x104]
movsd xmm0, qword [esp + 0xfc]
movq xmm2, qword [esp + 0xe4]
lea ecx, [esp + 0x70]
lea edx, [esp + 0x1b4]
movsd qword [esp + 0x58], xmm1
movsd xmm1, qword [esp + 0xec]
mov dword [esp + 0x68], eax
lea eax, [esp + 0x48]
movsd qword [esp + 0x60], xmm0
movq qword [esp + 0x48], xmm2
movsd qword [esp + 0x50], xmm1
push eax
call fcn.0052ed50
add esp, 4
mov eax, dword [esp + 0x70]
lea esi, [esp + 0x88]
mov edx, dword [esp + 0x74]
mov edi, dword [esp + 0x78]
mov ecx, dword [esp + 0x7c]
mov ebx, dword [esp + 0x80]
movsd xmm0, qword [esi]
movsd xmm1, qword [esi + 8]
mov esi, dword [esp + 0x84]
cmp eax, 0x22
mov dword [esp], eax
movsd qword [esp + 0x38], xmm0
movsd qword [esp + 0x40], xmm1
jne 0x4de971
movq xmm0, qword [esp + 0x38]
movq xmm1, qword [esp + 0x40]
mov dword [esp + 0xe4], edx
mov dword [esp + 0xe8], edi
mov dword [esp + 0xec], ecx
mov dword [esp + 0xf0], ebx
mov ebx, dword [ebp + 0xc]
lea eax, [esp + 0xf8]
mov dword [esp + 0xf4], esi
mov dword [esp + 8], ecx
movq qword [eax + 8], xmm1
movq qword [eax], xmm0
jmp 0x4ddc30
cmp ebx, 0x5c
je 0x4de648
cmp ebx, 0x5e
jne 0x4de3ad
mov ebx, dword [ebp + 0xc]
mov esi, dword [esp + 0x198]
mov ecx, dword [ebp + 8]
mov edx, ebx
push esi
call fcn.0052b380
add esp, 4
mov ecx, 1
cmp eax, 0x80
jb 0x4de310
mov ecx, 2
cmp eax, 0x800
jb 0x4de310
cmp eax, 0x10000
mov ecx, 4
sbb ecx, 0
add esi, ecx
jb 0x4e112a
mov edi, dword [esp + 0x1a0]
inc edi
je 0x4e1134
mov eax, dword [esp + 0x19c]
mov ecx, dword [ebp + 8]
mov edx, ebx
mov dword [esp], eax
push dword [esp + 0x198]
call fcn.0052b380
add esp, 4
xor ebx, ebx
cmp eax, 0xa
mov eax, 1
lea ecx, [esp + 0x198]
lea edx, [esp + 0xb4]
cmove edi, eax
sete bl
mov eax, dword [ecx + 8]
movsd xmm0, qword [ecx]
lea ecx, [esp + 0x1b4]
add ebx, dword [esp]
mov dword [edx - 0x28], eax
movsd qword [edx - 0x30], xmm0
call fcn.0052ba40
mov dword [esp + 0x80], 0x80000003
mov dword [esp + 0x90], esi
mov dword [esp + 0x94], ebx
mov dword [esp + 0x98], edi
mov byte [esp + 0x9c], 0
jmp 0x4de56c
mov esi, dword [esp + 0x198]
mov ecx, dword [ebp + 8]
mov edx, dword [ebp + 0xc]
push esi
call fcn.0052b380
add esp, 4
mov ecx, 1
cmp eax, 0x80
jb 0x4de3e8
mov ecx, 2
cmp eax, 0x800
jb 0x4de3e8
cmp eax, 0x10000
mov ecx, 4
sbb ecx, 0
add esi, ecx
jb 0x4e112a
mov edi, dword [esp + 0x1a0]
inc edi
je 0x4e1134
mov eax, dword [esp + 0x19c]
mov ecx, dword [ebp + 8]
mov edx, dword [ebp + 0xc]
mov dword [esp], eax
push dword [esp + 0x198]
call fcn.0052b380
add esp, 4
xor ecx, ecx
cmp eax, 0xa
mov eax, 1
lea edx, [esp + 0x198]
sete cl
cmove edi, eax
mov eax, dword [edx + 8]
movsd xmm0, qword [edx]
add ecx, dword [esp]
mov dword [esp], ecx
lea ecx, [esp + 0x88]
mov dword [ecx + 8], eax
movsd qword [ecx], xmm0
lea ecx, [esp + 0x1b4]
call fcn.0052ba40
mov eax, dword [esp]
mov dword [esp + 0x80], 0x80000002
mov dword [esp + 0x84], ebx
mov dword [esp + 0x94], esi
mov dword [esp + 0x98], eax
mov dword [esp + 0x9c], edi
mov byte [esp + 0xa0], 0
mov edi, 0x80000002
jmp 0x4de571
mov ebx, dword [ebp + 0xc]
mov esi, dword [esp + 0x198]
mov ecx, dword [ebp + 8]
mov edx, ebx
push esi
call fcn.0052b380
add esp, 4
mov ecx, 1
cmp eax, 0x80
jb 0x4de4d4
mov ecx, 2
cmp eax, 0x800
jb 0x4de4d4
cmp eax, 0x10000
mov ecx, 4
sbb ecx, 0
add esi, ecx
jb 0x4e112a
mov edi, dword [esp + 0x1a0]
inc edi
je 0x4e1134
mov eax, dword [esp + 0x19c]
mov ecx, dword [ebp + 8]
mov edx, ebx
mov dword [esp], eax
push dword [esp + 0x198]
call fcn.0052b380
add esp, 4
xor ebx, ebx
cmp eax, 0xa
mov eax, 1
lea ecx, [esp + 0x198]
lea edx, [esp + 0xb4]
cmove edi, eax
sete bl
mov eax, dword [ecx + 8]
movsd xmm0, qword [ecx]
lea ecx, [esp + 0x1b4]
add ebx, dword [esp]
mov dword [edx - 0x28], eax
movsd qword [edx - 0x30], xmm0
call fcn.0052ba40
mov dword [esp + 0x80], 0x80000003
mov dword [esp + 0x90], esi
mov dword [esp + 0x94], ebx
mov dword [esp + 0x98], edi
mov byte [esp + 0x9c], 1
mov edi, 0x80000003
mov eax, dword [esp + 0xa8]
lea ecx, [esp + 0x88]
mov edx, dword [esp + 0xa4]
mov ebx, dword [esp + 0x78]
mov esi, dword [esp + 0x84]
movsd xmm0, qword [ecx + 0x10]
movsd xmm1, qword [ecx + 8]
mov dword [esp + 0x20], eax
mov eax, dword [esp + 0x74]
movsd qword [esp + 0x58], xmm0
movsd xmm0, qword [ecx]
movsd qword [esp + 0x50], xmm1
mov dword [esp + 0x14], eax
mov eax, dword [ecx + 0x18]
mov ecx, 4
movsd qword [esp + 0x48], xmm0
mov dword [esp + 0x60], eax
lea eax, [edi + 0x7ffffffe]
cmp eax, 4
cmovae eax, ecx
mov ecx, dword [esp + 0x7c]
mov eax, dword [eax*4 + 0x4e14f8]
add eax, dword [esp + 0x18]
jmp eax
lea ecx, [esp + 0x70]
lea edx, [esp + 0x1b4]
call fcn.0052bb40
mov ecx, dword [esp + 0xa4]
mov esi, dword [esp + 0x7c]
mov eax, dword [esp + 0x70]
mov edx, dword [esp + 0x74]
mov ebx, dword [esp + 0xa8]
mov edi, dword [esp + 0x80]
mov dword [esp + 0xc], ecx
mov ecx, dword [esp + 0x78]
mov dword [esp + 0x34], esi
mov esi, dword [esp + 0x84]
cmp eax, 0x22
mov dword [esp + 0x14], edx
mov dword [esp + 0x20], ebx
mov dword [esp + 4], ecx
jne 0x4e102f
lea ecx, [esp + 0x88]
mov edx, dword [esp + 0xc]
mov ebx, dword [esp + 4]
mov eax, dword [ecx + 0x18]
movsd xmm0, qword [ecx + 0x10]
movsd xmm1, qword [ecx + 8]
mov dword [esp + 0x60], eax
lea eax, [edi + 0x7ffffffe]
movsd qword [esp + 0x58], xmm0
movsd xmm0, qword [ecx]
mov ecx, 4
movsd qword [esp + 0x50], xmm1
cmp eax, 4
cmovae eax, ecx
mov ecx, dword [esp + 0x34]
mov eax, dword [eax*4 + 0x4e14f8]
movsd qword [esp + 0x48], xmm0
add eax, dword [esp + 0x18]
jmp eax
movsd xmm1, qword [esp + 0xf4]
mov eax, dword [esp + 0x104]
movq xmm0, qword [esp + 0xfc]
movq xmm2, qword [esp + 0xe4]
lea ecx, [esp + 0x70]
lea edx, [esp + 0x1b4]
movsd qword [esp + 0x58], xmm1
movq xmm1, qword [esp + 0xec]
mov dword [esp + 0x68], eax
lea eax, [esp + 0x48]
movq qword [esp + 0x60], xmm0
movq qword [esp + 0x48], xmm2
movq qword [esp + 0x50], xmm1
push eax
call fcn.0052b460
add esp, 4
mov edi, dword [esp + 0x70]
cmp edi, 0x22
jne 0x4de9d9
mov eax, dword [esp + 0x74]
mov ecx, dword [esp + 0x78]
lea edx, [esp + 0x1b4]
mov dword [esp + 0x38], eax
lea eax, [esp + 0x38]
mov dword [esp + 0x3c], ecx
lea ecx, [esp + 0x70]
push eax
call fcn.0052f860
add esp, 4
mov eax, dword [esp + 0x70]
cmp eax, 0x22
jne 0x4dea61
cmp dword [esp + 0x148], 0
jne 0x4e120a
mov eax, dword [esp + 0x3c]
mov edx, dword [esp + 0x38]
mov ecx, dword [esp + 0x14c]
mov ebx, dword [esp + 0x150]
mov esi, dword [esp + 0x154]
mov dword [esp + 0x14c], 0
mov dword [esp + 0x150], 4
mov dword [esp + 0x154], 0
mov dword [esp + 0x148], 0
mov dword [esp + 4], eax
jmp 0x4dec74
mov eax, dword [esp + 0xa0]
movsd xmm0, qword [esp + 0x98]
movsd xmm1, qword [esp + 0x40]
mov dword [esp + 4], edi
mov dword [esp + 0x120], eax
mov eax, dword [esp + 0xa8]
movsd qword [esp + 0x118], xmm0
movsd xmm0, qword [esp + 0x38]
movsd qword [esp + 0x110], xmm1
mov dword [esp + 0x20], eax
mov eax, dword [esp + 0xa4]
movsd qword [esp + 0x108], xmm0
mov dword [esp + 0xc], eax
mov eax, dword [esp + 0xac]
mov dword [esp + 0x1c], eax
jmp 0x4deafa
mov eax, dword [esp + 0x78]
movsd xmm0, qword [esp + 0x88]
mov edx, dword [esp + 0x74]
mov ecx, dword [esp + 0x7c]
mov ebx, dword [esp + 0x80]
mov esi, dword [esp + 0x84]
mov dword [esp + 4], eax
mov eax, dword [esp + 0xa0]
movsd qword [esp + 0x108], xmm0
movsd xmm0, qword [esp + 0x90]
mov dword [esp + 0x120], eax
mov eax, dword [esp + 0xa8]
movsd qword [esp + 0x110], xmm0
movq xmm0, qword [esp + 0x98]
mov dword [esp + 0x20], eax
mov eax, dword [esp + 0xa4]
movq qword [esp + 0x118], xmm0
mov dword [esp + 0xc], eax
mov eax, dword [esp + 0xac]
mov dword [esp + 0x1c], eax
jmp 0x4deafd
mov ecx, dword [esp + 0x78]
mov edx, dword [esp + 0x74]
movsd xmm0, qword [esp + 0x88]
mov edi, dword [esp + 0x7c]
mov ebx, dword [esp + 0x80]
mov esi, dword [esp + 0x84]
mov dword [esp], eax
mov dword [esp + 4], ecx
mov ecx, dword [esp + 0xa8]
mov dword [esp + 0x14], edx
mov edx, dword [esp + 0xa0]
movsd qword [esp + 0x108], xmm0
movsd xmm0, qword [esp + 0x90]
mov dword [esp + 0x20], ecx
mov ecx, dword [esp + 0xac]
mov dword [esp + 0x120], edx
movsd qword [esp + 0x110], xmm0
movq xmm0, qword [esp + 0x98]
mov edx, dword [esp + 0xa4]
mov dword [esp + 0x1c], ecx
lea ecx, [esp + 0x38]
movq qword [esp + 0x118], xmm0
mov dword [esp + 0xc], edx
call fcn.0052ff20
mov edx, dword [esp + 0x14]
mov ecx, edi
mov edi, dword [esp]
movsd xmm0, qword [esp + 0x118]
movsd xmm1, qword [esp + 0x110]
mov eax, dword [esp + 0x120]
mov dword [esp], edi
mov edi, ebx
mov ebx, ecx
mov ecx, dword [esp + 0x1d8]
movsd qword [esp + 0x230], xmm1
movsd qword [esp + 0x238], xmm0
movsd xmm0, qword [esp + 0x108]
mov dword [esp + 0x240], eax
mov eax, dword [esp + 4]
mov dword [ecx + 0xc], edx
mov edx, dword [esp + 0xc]
movsd xmm1, qword [esp + 0x230]
movsd qword [esp + 0x228], xmm0
mov dword [ecx + 0x10], eax
mov dword [ecx + 0x14], ebx
mov dword [ecx + 0x18], edi
mov dword [ecx + 0x1c], esi
mov eax, dword [esp + 0x240]
mov esi, dword [esp + 0x1c]
movq xmm0, qword [esp + 0x228]
movsd qword [ecx + 0x28], xmm1
movq xmm1, qword [esp + 0x238]
mov dword [ecx + 0x38], eax
mov eax, dword [esp + 0x20]
movq qword [ecx + 0x20], xmm0
movq qword [ecx + 0x30], xmm1
mov dword [ecx + 0x3c], edx
mov edx, dword [esp]
mov dword [ecx + 0x40], eax
mov dword [ecx + 0x44], esi
mov dword [ecx], 0
mov dword [ecx + 4], 0
mov dword [ecx + 8], edx
lea ecx, [esp + 0x148]
call fcn.004c6f30
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret
mov ebx, dword [esp + 8]
mov ecx, dword [esp + 0xe8]
mov dword [esp + 0x120], eax
test ebx, ebx
mov dword [esp + 0x1c8], ecx
je 0x4dec3d
mov edi, dword [esp + 0x1c8]
nop dword [eax + eax]
mov ecx, edi
call fcn.0052ff20
add edi, 8
dec ebx
jne 0x4dec30
cmp dword [esp + 0xe4], 0
je 0x4dec5c
push dword [esp + 0x1c8]
push 0
push dword [0x94bf18]
call dword [sym.imp.kernel32.dll_HeapFree]
mov edi, dword [esp]
mov edx, dword [esp + 0x14]
mov ebx, dword [esp + 0x10]
mov ecx, dword [esp + 0x34]
cmp edi, 0x22
jne 0x4deafd
mov dword [esp + 0x10], ebx
test esi, esi
mov ebx, ecx
mov dword [esp + 0x14], edx
je 0x4decae
mov eax, dword [esp + 0x10]
lea edi, [eax + 4]
jmp 0x4dec96
add edi, 0x24
dec esi
je 0x4decae
cmp dword [edi - 4], 0
je 0x4dec90
push dword [edi]
push 0
push dword [0x94bf18]
call dword [sym.imp.kernel32.dll_HeapFree]
jmp 0x4dec90
test ebx, ebx
je 0x4decc4
push dword [esp + 0x10]
push 0
push dword [0x94bf18]
call dword [sym.imp.kernel32.dll_HeapFree]
lea ecx, [esp + 0x148]
call fcn.004c6f30
lea ecx, [esp + 0x21c]
call fcn.004e1560
mov edx, dword [esp + 0x220]
mov eax, dword [esp + 0x224]
mov ecx, dword [esp + 0x14]
mov esi, dword [esp + 4]
mov dword [edx + eax*8], ecx
mov dword [edx + eax*8 + 4], esi
mov esi, dword [ebp + 0xc]
inc eax
mov dword [esp + 0x224], eax
jne 0x4ded18
mov edi, 4
mov dword [esp + 8], 0
jmp 0x4e08d0
mov ecx, dword [esp + 0x1d4]
mov dword [esp + 0x1c8], eax
lea edi, [esp + 0x48]
mov dword [esp + 0x1e8], 0
mov dword [esp + 0x1ec], 4
mov dword [esp + 0x1f4], 0
mov dword [esp + 0x1f8], 4
mov dword [esp + 0x1f0], 0
mov dword [esp + 0x1fc], 0
mov dword [esp], 0
mov dword [esp + 8], 4
mov dword [esp + 0x1c], edx
mov dword [esp + 0x228], edi
movzx eax, word [ecx + 0x49]
movzx ebx, byte [ecx + 0x44]
mov word [esp + 0x5c], ax
mov eax, dword [ecx + 0x45]
movzx ecx, byte [ecx + 0x4b]
mov dword [esp + 0x58], eax
mov dword [esp + 0x48], 0
mov dword [esp + 0x4c], 0
mov dword [esp + 0x50], 4
mov dword [esp + 0x54], 0
mov byte [esp + 0x5f], bl
mov byte [esp + 0x5e], cl
mov ecx, dword [ebp + 8]
mov dword [esp + 0x22c], ecx
mov dword [esp + 0x230], esi
mov eax, dword [edx]
mov dword [esp + 0x34], edx
lea ecx, [eax - 7]
cmp ecx, 4
ja 0x4df2c1
mov eax, dword [ecx*4 + 0x4e150c]
add eax, dword [esp + 0x18]
jmp eax
mov esi, dword [edx + 4]
lea ecx, [eax - 7]
cmp ecx, 4
ja 0x4e04f3
mov eax, dword [ecx*4 + 0x4e153c]
add eax, dword [esp + 0x18]
jmp eax
lea ecx, [esp + 0x70]
lea edx, [esp + 0x228]
push esi
push eax
call fcn.0053fed0
add esp, 8
mov edi, dword [esp + 0x70]
cmp edi, 0x80000000
jne 0x4e0735
mov edx, dword [esp + 0x1f0]
test edx, edx
je 0x4e0631
mov ecx, dword [esp + 0x1ec]
lea eax, [edx + edx*4]
lea esi, [ecx + eax*4 - 0x14]
mov dword [esp + 8], ecx
nop dword [eax]
mov edi, dword [esi + 4]
cmp edi, 4
je 0x4e0631
mov ecx, dword [esi]
lea ebx, [edx - 1]
cmp edi, 2
jb 0x4e056f
mov eax, dword [esi + 0xc]
mov dword [esp + 0x34], eax
mov eax, dword [esi + 0x10]
jne 0x4e056b
test eax, eax
je 0x4e056f
jmp 0x4e060a
test eax, eax
jne 0x4e05a7
mov eax, ecx
lea ecx, [esp + 0x70]
lea edx, [esp + 0x228]
push dword [eax + 4]
push dword [eax]
call fcn.0053fed0
add esp, 8
mov edi, dword [esp + 0x70]
cmp edi, 0x80000000
jne 0x4e0735
add esi, 0xffffffec
test ebx, ebx
mov edx, ebx
jne 0x4e0540
jmp 0x4e0631
cmp dword [esp + 0x48], 0
mov dword [esp + 0x20], eax
mov dword [esp], edx
mov dword [esp + 0x1f0], ebx
jne 0x4e1111
mov dword [esp + 0x48], 0xffffffff
mov dword [esp + 4], ecx
mov edx, dword [esp + 0x54]
cmp edx, dword [esp + 0x4c]
jne 0x4e05e3
lea ecx, [esp + 0x4c]
call fcn.006e8c70
mov edx, dword [esp + 0x54]
mov eax, dword [esp + 0x50]
lea ecx, [edx + edx*8]
lea ecx, [ecx + ecx*2]
add ecx, edx
inc edx
mov dword [eax + ecx], 0xf
mov dword [esp + 0x54], edx
mov edx, dword [esp]
mov ecx, dword [esp + 4]
mov eax, dword [esp + 0x20]
inc dword [esp + 0x48]
mov ebx, edx
mov edx, dword [esp + 0x34]
mov dword [esi], ecx
mov dword [esi + 4], edi
dec eax
mov dword [esp], ebx
lea edi, [edx + 8]
mov dword [esi + 8], edx
mov dword [esi + 0xc], edi
mov dword [esi + 0x10], eax
mov dword [esp + 0x1f0], ebx
jmp 0x4dedd7
mov eax, dword [esp + 0x228]
mov ecx, dword [eax]
cmp ecx, 0x7ffffffe
ja 0x4e1374
inc ecx
mov dword [eax], ecx
mov ecx, dword [eax + 0xc]
cmp ecx, 1
mov dword [esp + 0x148], ecx
jne 0x4e137e
dec dword [eax]
cmp dword [eax], 0
jne 0x4e114d
mov dword [eax], 0xffffffff
mov dword [eax + 0xc], 0
mov ecx, dword [eax + 8]
movsd xmm0, qword [ecx + 0x14]
mov esi, dword [ecx]
movsd qword [esp + 0x158], xmm0
cmp esi, 0x10
movsd xmm0, qword [ecx + 0xc]
movsd qword [esp + 0x150], xmm0
movsd xmm0, qword [ecx + 4]
movsd qword [esp + 0x148], xmm0
mov dword [eax], 0
je 0x4e13a1
movsd xmm1, qword [esp + 0x150]
mov dword [esp + 0x70], esi
movsd xmm0, qword [esp + 0x148]
xor eax, eax
lea ecx, [esi - 7]
cmp esi, 8
cmovae eax, ecx
test eax, eax
movsd qword [esp + 0x7c], xmm1
movq xmm1, qword [esp + 0x158]
movsd qword [esp + 0x74], xmm0
movq qword [esp + 0x84], xmm1
je 0x4e0797
cmp eax, 1
jne 0x4e13c5
lea ecx, [esp + 0x74]
lea edx, [esp + 0x128]
mov eax, dword [ecx + 8]
movsd xmm0, qword [ecx]
lea ecx, [esp + 0x148]
mov dword [esp + 0x130], eax
movsd qword [esp + 0x128], xmm0
call fcn.00542c60
jmp 0x4e07d5
mov edx, dword [esp + 0x78]
mov ecx, dword [esp + 0x7c]
mov eax, dword [esp + 0x74]
movsd xmm0, qword [esp + 0x80]
mov ebx, dword [esp + 0x88]
mov esi, dword [esp + 0x8c]
mov dword [esp], edx
mov dword [esp + 0x18], ecx
mov edx, dword [esp + 0x94]
mov ecx, dword [esp + 0x90]
mov dword [esp + 8], eax
movaps xmmword [esp + 0x20], xmm0
mov dword [esp + 0x1b8], edx
mov dword [esp + 0x1b4], ecx
cmp dword [esp + 0x1e8], 0
jne 0x4e082f
jmp 0x4e0844
mov eax, dword [esp + 0x88]
movsd xmm0, qword [esp + 0x80]
movq xmm2, qword [esp + 0x70]
movq xmm1, qword [esp + 0x78]
mov dword [esp + 0x160], eax
movsd qword [esp + 0x158], xmm0
movq qword [esp + 0x150], xmm1
movq qword [esp + 0x148], xmm2
cmp esi, 9
jb 0x4e07e3
lea ecx, [esp + 0x70]
call fcn.00542df0
mov eax, dword [esp + 0x148]
mov edx, dword [esp + 0x14c]
mov ecx, dword [esp + 0x150]
movq xmm0, qword [esp + 0x154]
mov ebx, dword [esp + 0x15c]
mov esi, dword [esp + 0x160]
mov edi, 0x80000000
mov dword [esp + 8], eax
mov dword [esp], edx
mov dword [esp + 0x18], ecx
movdqa xmmword [esp + 0x20], xmm0
cmp dword [esp + 0x1e8], 0
je 0x4e0844
push dword [esp + 0x1ec]
push 0
push dword [0x94bf18]
call dword [sym.imp.kernel32.dll_HeapFree]
cmp dword [esp + 0x1f4], 0
je 0x4e0863
push dword [esp + 0x1f8]
push 0
push dword [0x94bf18]
call dword [sym.imp.kernel32.dll_HeapFree]
cmp edi, 0x80000000
jne 0x4e08f7
lea ecx, [esp + 0x48]
call fcn.004c71e0
lea ecx, [esp + 0x244]
call fcn.004c6e90
mov ecx, dword [esp + 0x24c]
mov edi, dword [esp + 0x248]
mov edx, dword [esp + 8]
movdqa xmm0, xmmword [esp + 0x20]
lea eax, [ecx + ecx*8]
lea eax, [eax + eax*2]
add eax, ecx
inc ecx
mov dword [edi + eax], edx
mov edx, dword [esp]
mov dword [esp + 8], ecx
mov dword [edi + eax + 4], edx
mov edx, dword [esp + 0x18]
mov dword [edi + eax + 8], edx
movq qword [edi + eax + 0xc], xmm0
mov dword [edi + eax + 0x14], ebx
mov dword [edi + eax + 0x18], esi
mov dword [esp + 0x24c], ecx
mov ecx, dword [esp + 0x1d4]
movzx eax, byte [ecx + 0x34]
mov dh, byte [ecx + 0x3a]
mov dl, byte [ecx + 0x3b]
mov ah, byte [ecx + 0x3c]
mov esi, ecx
cmp al, 3
je 0x4e08f2
cmp al, 2
jne 0x4e09d4
jmp 0x4e0a00
mov ecx, dword [esp + 0x1b4]
mov eax, dword [esp + 0x1b8]
movsd xmm0, qword [esp + 0xe4]
movq xmm1, qword [esp + 0xec]
mov dword [esp + 0x254], ecx
mov ecx, dword [esp + 0x1d8]
mov dword [esp + 0x258], eax
mov edx, dword [esp + 0x254]
mov dword [ecx + 0x24], ebx
mov ebx, dword [esp + 0x258]
mov dword [ecx + 0x28], esi
mov dword [ecx + 0x2c], edx
mov edx, dword [esp + 8]
mov dword [ecx + 0x30], ebx
mov ebx, dword [esp + 0xf4]
movsd qword [ecx + 0x34], xmm0
movq qword [ecx + 0x3c], xmm1
movdqa xmm0, xmmword [esp + 0x20]
mov dword [ecx + 0x44], ebx
mov dword [ecx + 0xc], edi
mov dword [ecx + 0x10], edx
mov ebx, dword [esp]
mov edx, dword [esp + 0x18]
mov dword [ecx + 0x14], ebx
mov dword [ecx + 0x18], edx
movq qword [ecx + 0x1c], xmm0
mov dword [ecx], 0
mov dword [ecx + 4], 0
mov dword [ecx + 8], 0x22
lea ecx, [esp + 0x48]
call fcn.004c71e0
mov esi, dword [esp + 0x1c]
mov edi, dword [esp + 0x1c8]
nop word cs:[eax + eax]
nop
mov ecx, esi
call fcn.004c72c0
add esi, 8
dec edi
jne 0x4e09b0
cmp dword [esp + 0x21c], 0
je 0x4debca
push dword [esp + 0x1c]
jmp 0x4e101c
mov ebx, dword [esp + 0x1d4]
mov ecx, dword [ebx + 0x28]
mov esi, dword [ebx + 0x2c]
mov dword [esp + 0x18], esi
mov dword [esp + 0x20], ecx
lock inc dword [ecx]
jle 0x4e1329
mov esi, dword [ebx + 0x30]
mov ebx, dword [esp + 0x18]
mov dword [esp], esi
mov esi, dword [esp + 0x20]
mov byte [esp + 0x182], dh
mov byte [esp + 0x183], dl
mov byte [esp + 0x184], ah
mov dword [esp + 0x170], esi
mov esi, dword [esp + 0x1d4]
mov edx, dword [esp]
mov dword [esp + 0x174], ebx
movzx ecx, byte [esi + 0x42]
mov dword [esp + 0x178], edx
mov edx, dword [esi + 8]
mov byte [esp + 0x17c], al
xor eax, eax
mov ebx, dword [esi + 0x3d]
mov byte [esp + 0x18a], cl
mov ecx, dword [esi + 0x10]
test edx, edx
setne al
cmp edx, 2
cmove eax, edx
movzx edx, byte [esi + 0x41]
mov dword [esp + 0x150], eax
xor eax, eax
test ecx, ecx
setne al
cmp ecx, 2
cmove eax, ecx
mov ecx, dword [esi + 0xc]
mov dword [esp + 0x154], ecx
mov ecx, dword [esi + 0x18]
mov dword [esp + 0x158], eax
xor eax, eax
test ecx, ecx
setne al
cmp ecx, 2
cmove eax, ecx
mov ecx, dword [esi + 0x14]
mov dword [esp + 0x15c], ecx
mov ecx, dword [esi]
mov dword [esp + 0x148], ecx
mov ecx, dword [esi + 4]
mov dword [esp + 0x14c], ecx
mov ecx, dword [esi + 0x20]
mov dword [esp + 0x160], eax
xor eax, eax
test ecx, ecx
setne al
cmp ecx, 2
cmove eax, ecx
mov ecx, dword [esi + 0x1c]
mov dword [esp + 0x164], ecx
mov dword [esp + 0x168], eax
mov eax, dword [esi + 0x24]
movzx ecx, word [esi + 0x38]
mov esi, dword [esp + 8]
test esi, esi
mov dword [esp + 0x16c], eax
mov dword [esp + 0x185], ebx
mov byte [esp + 0x189], dl
mov word [esp + 0x180], cx
je 0x4e0c06
movzx eax, byte [0x94bfc5]
lea edx, [esi*4]
xor ecx, ecx
xor ebx, ebx
mov dword [esp], edx
call fcn.0071ee80
test eax, eax
je 0x4e132b
cmp esi, 8
jb 0x4e0bb0
movdqa xmm0, xmmword [0x7d44a0]
movdqa xmm1, xmmword [0x7d4d50]
movdqa xmm3, xmmword [str.pppp_n_nd]
movdqa xmm4, xmmword [0x7d44c0]
mov ebx, esi
movd xmm2, edi
lea edx, [eax + 0x10]
and ebx, 0xfffffff8
pshufd xmm2, xmm2, 0
mov ecx, ebx
nop dword [eax + eax]
movdqa xmm5, xmm0
pshufd xmm6, xmm0, 0xf5
paddd xmm0, xmm4
pmuludq xmm5, xmm1
pmuludq xmm6, xmm1
pshufd xmm5, xmm5, 0xe8
pshufd xmm6, xmm6, 0xe8
punpckldq xmm5, xmm6
paddd xmm5, xmm2
movdqu xmmword [edx - 0x10], xmm5
paddd xmm5, xmm3
movdqu xmmword [edx], xmm5
add edx, 0x20
add ecx, 0xfffffff8
jne 0x4e0b70
cmp esi, ebx
je 0x4e0bdb
lea ecx, [ebx + ebx*8]
mov edx, esi
add edi, ebx
lea ecx, [ecx + ecx*2]
sub edx, ebx
add edi, ecx
lea ecx, [eax + ebx*4]
nop word cs:[eax + eax]
nop dword [eax + eax]
mov dword [ecx], edi
add ecx, 4
add edi, 0x1c
dec edx
jne 0x4e0bd0
lea ecx, [esp + 0x148]
mov edx, eax
mov edi, eax
push esi
call fcn.004e1600
add esp, 4
mov ebx, eax
lea ecx, [esp + 0x70]
mov edx, eax
mov dword [esp + 0x1e8], eax
push esi
mov dword [esp + 4], edi
push edi
jmp 0x4e0c36
lea ecx, [esp + 0x148]
mov edx, 4
mov dword [esp], 4
push 0
call fcn.004e1600
add esp, 4
mov ebx, eax
lea ecx, [esp + 0x70]
mov edx, eax
mov dword [esp + 0x1e8], eax
push 0
push 4
call fcn.004e1a90
add esp, 8
mov eax, dword [esp + 0x70]
cmp eax, 2
jne 0x4e0ed3
mov esi, dword [esp + 0x74]
mov dword [esp + 0x18], ebx
mov edi, dword [esp + 0x78]
lock inc dword [esi]
jle 0x4e1329
movzx eax, byte [0x94bfc5]
xor ecx, ecx
mov edx, 8
call fcn.0071ee80
test eax, eax
je 0x4e1338
mov dword [eax], esi
mov dword [esp + 0x20], esi
mov dword [esp + 4], edi
mov dword [eax + 4], edi
mov ebx, eax
xor ecx, ecx
mov edx, 0x240
movzx eax, byte [0x94bfc5]
call fcn.0071ee80
test eax, eax
je 0x4e1347
mov esi, eax
xor ecx, ecx
mov edx, 0x308
and esi, 0xffffffc0
mov dword [esi + 0x3c], eax
mov dword [esi + 0x40], 0
mov byte [esi + 0x44], 0
mov dword [esi + 0x48], 0
mov dword [esi + 0x4c], 4
mov dword [esi + 0x50], 0
mov dword [esi + 0x80], 0
mov byte [esi + 0x84], 0
mov dword [esi + 0x88], 0
mov dword [esi + 0x8c], 4
mov dword [esi + 0x90], 0
mov dword [esi + 0xc0], 0
mov byte [esi + 0xc4], 0
mov dword [esi + 0xc8], 0
mov dword [esi + 0xcc], 4
mov dword [esi + 0xd0], 0
mov dword [esi + 0x100], 0
mov byte [esi + 0x104], 0
mov dword [esi + 0x108], 0
mov dword [esi + 0x10c], 4
mov dword [esi + 0x110], 0
mov dword [esi + 0x140], 0
mov byte [esi + 0x144], 0
mov dword [esi + 0x148], 0
mov dword [esi + 0x14c], 4
mov dword [esi + 0x150], 0
mov dword [esi + 0x180], 0
mov byte [esi + 0x184], 0
mov dword [esi + 0x188], 0
mov dword [esi + 0x18c], 4
mov dword [esi + 0x190], 0
mov dword [esi + 0x1c0], 0
mov byte [esi + 0x1c4], 0
mov dword [esi + 0x1c8], 0
mov dword [esi + 0x1cc], 4
mov dword [esi + 0x1d0], 0
mov dword [esi + 0x200], 0
mov byte [esi + 0x204], 0
mov dword [esi + 0x208], 0
mov dword [esi + 0x20c], 4
mov dword [esi + 0x210], 0
movzx eax, byte [0x94bfc5]
call fcn.0071ee80
test eax, eax
je 0x4e1356
add esi, 0x40
mov dword [eax], 2
mov dword [eax + 0x2f0], ebx
mov dword [eax + 0x2f4], 0x84f4c0
mov dword [eax + 0x2f8], 0
mov dword [eax + 0x2fc], 8
mov edi, eax
xor ecx, ecx
mov edx, 0x14
mov dword [eax + 0x300], esi
mov dword [eax + 0x304], 8
movzx eax, byte [0x94bfc5]
call fcn.0071ee80
test eax, eax
je 0x4e1365
mov ecx, dword [esp + 0x20]
mov edx, dword [esp + 4]
mov dword [eax], 1
mov dword [eax + 4], 1
mov esi, dword [esp + 0x18]
cmp dword [esp + 8], 0
mov dword [eax + 8], ecx
mov dword [eax + 0xc], edx
mov edx, dword [esp + 0x1d8]
mov dword [eax + 0x10], esi
mov dword [edx + 4], eax
mov dword [edx + 8], edi
mov dword [edx], 2
mov eax, dword [esp]
jne 0x4e0f68
jmp 0x4e0f77
mov edx, dword [esp + 0x1d8]
movsd xmm1, qword [esp + 0x9c]
movsd xmm2, qword [esp + 0xa4]
mov ecx, dword [esp + 0xb4]
movq xmm0, qword [esp + 0xac]
movsd qword [edx + 0x2c], xmm1
movsd xmm1, qword [esp + 0x8c]
movsd qword [edx + 0x34], xmm2
movsd xmm2, qword [esp + 0x94]
mov dword [edx + 0x44], ecx
movq qword [edx + 0x3c], xmm0
movsd qword [edx + 0x1c], xmm1
movsd xmm1, qword [esp + 0x84]
movsd qword [edx + 0x24], xmm2
movq xmm2, qword [esp + 0x7c]
movsd qword [edx + 0x14], xmm1
movq xmm1, qword [esp + 0x74]
movq qword [edx + 0xc], xmm2
mov dword [edx], eax
movq qword [edx + 4], xmm1
lock dec dword [ebx]
jne 0x4e0f61
lea ecx, [esp + 0x1e8]
call fcn.004fbfc0
test esi, esi
mov eax, dword [esp]
je 0x4e0f77
push eax
push 0
push dword [0x94bf18]
call dword [sym.imp.kernel32.dll_HeapFree]
mov ebx, dword [esp + 0x24c]
mov eax, dword [esp + 0x248]
test ebx, ebx
mov dword [esp + 8], eax
je 0x4e0fc1
mov edi, dword [sym.imp.kernel32.dll_HeapFree]
mov esi, dword [esp + 8]
nop word [eax + eax]
mov ecx, esi
call fcn.00542e60
mov ecx, esi
call fcn.004c6c20
push dword [esi + 0x18]
push 0
push dword [0x94bf18]
call edi
add esi, 0x1c
dec ebx
jne 0x4e0fa0
cmp dword [esp + 0x244], 0
je 0x4e0fdd
push dword [esp + 8]
push 0
push dword [0x94bf18]
call dword [sym.imp.kernel32.dll_HeapFree]
mov ebx, dword [esp + 0x224]
mov edi, dword [esp + 0x220]
test ebx, ebx
je 0x4e100d
mov esi, edi
nop word cs:[eax + eax]
nop dword [eax + eax]
mov ecx, esi
call fcn.004c72c0
add esi, 8
dec ebx
jne 0x4e1000
cmp dword [esp + 0x21c], 0
je 0x4debca
push edi
push 0
push dword [0x94bf18]
call dword [sym.imp.kernel32.dll_HeapFree]
jmp 0x4debca
lea ecx, [esp + 0x88]
mov dword [esp], eax
mov dword [esp + 0x10], edi
movq xmm0, qword [ecx + 0x10]
movq xmm2, qword [ecx + 8]
mov eax, dword [ecx + 0x18]
movq xmm1, qword [ecx]
mov ecx, dword [esp + 0xac]
mov dword [esp + 0x60], eax
movq qword [esp + 0x58], xmm0
movq qword [esp + 0x50], xmm2
mov dword [esp + 0x1c], ecx
movq qword [esp + 0x108], xmm1
movq qword [esp + 0x110], xmm2
movq qword [esp + 0x118], xmm0
jmp 0x4dec07
mov ecx, 0x8542c0
call fcn.007c1ec0
mov ecx, 4
mov edx, 0x74
call fcn.007c1490
mov ecx, 0x852a08
call fcn.007c1fe0
mov ecx, 0x852a18
call fcn.007c1fe0
mov ecx, 4
mov edx, 0x1c
call fcn.007c1490
mov ecx, 0x8542f0
call fcn.007c1ec0
mov ecx, 4
mov edx, 0x20
call fcn.007c1490
mov ecx, 4
mov edx, 0x38
call fcn.007c1490
mov ecx, 4
mov edx, 0x18
call fcn.007c1490
lea eax, [esp + 0x70]
mov dword [esp + str.tried_to_unwrap_byte_class_from_HirFrame__got:], 0x854004
mov dword [esp + 0x14c], 1
mov dword [esp + 0x158], 0
mov dword [esp + 0x128], eax
lea eax, [esp + 0x128]
mov dword [esp + 0x12c], 0x5429f0
jmp 0x4e1279
mov ecx, 0x852be8
call fcn.007c1ec0
mov dword [ebx], 0
mov ecx, 0x854260
call fcn.007c1fe0
mov dword [ebx], 0
mov ecx, 0x854270
call fcn.007c1fe0
mov dword [ebx], 0
mov ecx, 0x854280
call fcn.007c1fe0
lea eax, [esp + 0x70]
mov dword [esp + str.tried_to_unwrap_byte_class_from_HirFrame__got:], 0x854004
mov dword [esp + 0x14c], 1
mov dword [esp + 0x158], 0
mov dword [esp + 0x38], eax
mov dword [esp + 0x3c], 0x5429f0
lea eax, [esp + 0x38]
lea ecx, [esp + 0x148]
mov edx, 0x85400c
mov dword [esp + 0x150], eax
mov dword [esp + 0x154], 1
call fcn.007c1b50
mov dword [ebx], 0
mov ecx, 0x854290
call fcn.007c1fe0
mov dword [ebx], 0
mov ecx, 0x8542a0
call fcn.007c1fe0
mov dword [ebx], 0
mov ecx, 0x8542b0
call fcn.007c1fe0
lea eax, [esp + 0x70]
mov dword [esp + str.tried_to_unwrap_Unicode_class_from_HirFrame__got:], 0x853fbc
mov dword [esp + 0x14c], 1
mov dword [esp + 0x158], 0
mov dword [esp + 0x38], eax
mov dword [esp + 0x3c], 0x5429f0
lea eax, [esp + 0x38]
lea ecx, [esp + 0x148]
mov edx, 0x853fc4
mov dword [esp + 0x150], eax
mov dword [esp + 0x154], 1
call fcn.007c1b50
call fcn.00418cb0
ud2
mov edx, dword [esp]
mov ecx, 4
call fcn.007c1490
mov ecx, 4
mov edx, 8
call fcn.007c1490
mov ecx, 0x40
mov edx, 0x200
call fcn.007c1490
mov ecx, 8
mov edx, 0x308
call fcn.007c1490
mov ecx, 4
mov edx, 0x14
call fcn.007c1490
mov ecx, 0x854110
call fcn.007c1f10
mov dword [esp + 0x70], 0
lea ecx, [esp + 0x148]
mov edx, 0x93503c
push 0x854100
lea eax, [esp + 0x74]
push eax
call fcn.007caea0
mov ecx, 0x8540f0
call fcn.007c1fe0
mov ecx, 1
mov edx, edi
call fcn.007c1490
mov edx, dword [esp + 0x20]
mov ecx, 4
call fcn.007c1490
lea ecx, [esp + 0x128]
lea eax, [esp + 0x70]
mov dword [esp + str.tried_to_unwrap_expr_from_HirFrame__got:], 0x853efc
mov dword [esp + 0x14c], 1
mov dword [esp + 0x158], 0
mov edx, 0x853f78
mov dword [esp + 0x150], ecx
lea ecx, [esp + 0x148]
mov dword [esp + 0x128], eax
mov dword [esp + 0x12c], 0x5429f0
mov dword [esp + 0x154], 1
call fcn.007c1b50
nop
retf 2