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

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
and esp, 0xfffffff8
sub esp, 0xc0
mov ebx, dword [edx]
mov dword [esp + 0x8c], ecx
mov edi, edx
mov ecx, dword [edx + 4]
mov edx, dword [edx + 8]
lea eax, [ebx + 0x50]
mov dword [esp + 0x20], eax
mov esi, edx
mov dword [esp], ecx
push dword [ebx + 0x50]
call fcn.004d0b90
add esp, 4
cmp eax, 0x70
je 0x4dd2f8
mov eax, dword [esp + 0x20]
mov ecx, dword [esp]
mov edx, esi
push dword [eax]
call fcn.004d0b90
add esp, 4
cmp eax, 0x50
jne 0x4de1a8
cmp dword [ebx + 0x40], 0
jne 0x4de174
lea eax, [ebx + 0x40]
mov dword [ebx + 0x40], 0xffffffff
mov dword [ebx + 0x4c], 0
mov dword [esp + 0xb0], eax
mov ecx, dword [esp]
mov edx, esi
push dword [ebx + 0x50]
call fcn.004d0b90
add esp, 4
mov dword [esp + 0xb8], eax
mov ecx, edi
call fcn.004d0c80
test al, al
je 0x4dd351
mov ecx, edi
call fcn.004d0f00
mov eax, dword [esp + 0x20]
mov eax, dword [eax]
cmp eax, esi
jne 0x4dd414
mov ecx, dword [esp + 0x20]
test esi, esi
mov eax, dword [ecx + 8]
mov dword [esp + 0x5c], eax
movsd xmm0, qword [ecx]
movsd qword [esp + 0x54], xmm0
movsd xmm0, qword [ecx]
movsd qword [esp + 0x48], xmm0
mov eax, dword [ecx + 8]
mov dword [esp + 0x50], eax
je 0x4dd3b9
js 0x4de1a1
mov eax, dword [0x607474]
mov edi, dword [0x607460]
movzx eax, byte [eax]
mov eax, dword [edi]
test eax, eax
jne 0x4dd3a4
call sub.KERNEL32.dll_GetProcessHeap
test eax, eax
je 0x4de194
mov dword [edi], eax
push esi
push 0
push eax
call sub.KERNEL32.dll_HeapAlloc
mov edi, eax
test eax, eax
je 0x4de194
jmp 0x4dd3be
mov edi, 1
push esi
push dword [esp + 4]
push edi
call sub.msvcrt.dll_memcpy
add esp, 0xc
mov eax, dword [esp + 0x8c]
movsd xmm0, qword [esp + 0x48]
movsd xmm1, qword [esp + 0x50]
movsd qword [eax + 0x28], xmm0
movsd qword [eax + 0x30], xmm1
movsd xmm1, qword [esp + 0x58]
movsd qword [eax + 0x38], xmm1
mov dword [eax], 0xa
mov dword [eax + 0x1c], edi
mov dword [eax + 0x20], esi
mov dword [eax + 0x24], esi
mov eax, dword [esp + 0xb0]
inc dword [eax]
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret
mov ecx, dword [esp]
mov edx, esi
push eax
call fcn.004d0b90
add esp, 4
cmp eax, 0x7b
jne 0x4dd4bb
lea ecx, [esp + 0x48]
mov edx, edi
call fcn.004d1580
mov ecx, dword [esp + 0x5c]
movsd xmm0, qword [esp + 0x54]
lea eax, [ebx + 0x44]
mov dword [esp + 0x14], eax
mov dword [esp + 0xa8], ecx
movsd qword [esp + 0xa0], xmm0
nop word [eax + eax]
mov ecx, edi
call fcn.004d0c80
test al, al
je 0x4dd53e
mov ecx, edi
call fcn.004d0f00
mov eax, dword [esp + 0x20]
mov eax, dword [eax]
cmp eax, esi
je 0x4dd53e
mov ecx, dword [esp]
mov edx, esi
push eax
call fcn.004d0b90
add esp, 4
cmp eax, 0x7d
je 0x4dd53e
mov eax, dword [esp + 0x20]
mov ecx, dword [esp]
mov edx, esi
push dword [eax]
call fcn.004d0b90
add esp, 4
mov ecx, dword [esp + 0x14]
mov edx, eax
call fcn.004ce4e0
jmp 0x4dd460
mov ebx, dword [esp + 0x20]
mov eax, dword [ebx + 8]
mov dword [esp + 0x40], eax
movsd xmm0, qword [ebx]
movsd qword [esp + 0x38], xmm0
mov ecx, dword [esp]
mov edx, esi
push dword [ebx]
call fcn.004d0b90
add esp, 4
mov ebx, eax
cmp eax, 0x5c
jne 0x4dd5b9
lea ecx, [esp + 0x48]
mov edx, edi
call fcn.004d1580
test esi, esi
je 0x4dd85b
js 0x4de1a1
mov eax, dword [0x607474]
mov edi, dword [0x607460]
movzx eax, byte [eax]
mov eax, dword [edi]
test eax, eax
jne 0x4dd526
call sub.KERNEL32.dll_GetProcessHeap
test eax, eax
je 0x4de194
mov dword [edi], eax
push esi
push 0
push eax
call sub.KERNEL32.dll_HeapAlloc
mov edi, eax
test eax, eax
jne 0x4dd860
jmp 0x4de194
mov ecx, dword [esp + 0x20]
mov edx, esi
mov eax, dword [ecx]
cmp eax, esi
jne 0x4dd5ef
mov eax, dword [ecx + 8]
test edx, edx
mov dword [esp + 0x5c], eax
movsd xmm0, qword [ecx]
movsd qword [esp + 0x54], xmm0
movsd xmm0, qword [ecx]
movsd qword [esp + 0x48], xmm0
mov eax, dword [ecx + 8]
mov dword [esp + 0x50], eax
je 0x4dd8a1
js 0x4de1a1
mov eax, dword [0x607474]
mov edi, dword [0x607460]
movzx eax, byte [eax]
mov eax, dword [edi]
test eax, eax
jne 0x4dd5a1
call sub.KERNEL32.dll_GetProcessHeap
test eax, eax
je 0x4de194
mov dword [edi], eax
push esi
push 0
push eax
call sub.KERNEL32.dll_HeapAlloc
mov edi, eax
test eax, eax
jne 0x4dd8a6
jmp 0x4de194
mov ecx, edi
call fcn.004d0c80
test al, al
je 0x4dd5cb
mov ecx, edi
call fcn.004d0f00
mov eax, dword [esp + 0x40]
movsd xmm0, qword [esp + 0x38]
xor edx, edx
mov dword [esp], ebx
mov dword [esp + 0x98], eax
movsd qword [esp + 0x90], xmm0
jmp 0x4ddf83
mov ecx, dword [esp]
push eax
call fcn.004d0b90
add esp, 4
cmp eax, 0x7d
mov dword [esp + 0x38], eax
jne 0x4de1be
mov ecx, edi
call fcn.004d0c80
mov esi, dword [ebx + 0x44]
mov eax, dword [ebx + 0x4c]
push 2
push 0x5b29d4
mov dword [esp + 0x14], eax
push eax
push esi
lea eax, [esp + 0x58]
push eax
call fcn.00428f40
add esp, 0x14
mov eax, dword [esp + 0x78]
mov edi, dword [esp + 0x7c]
cmp dword [esp + 0x48], 0
mov dword [esp + 0x2c], esi
mov dword [esp + 4], eax
mov dword [esp + 8], edi
je 0x4dd8ab
mov eax, dword [esp + 0x84]
mov edx, dword [esp + 0x64]
lea ecx, [edx + eax - 1]
mov dword [esp], eax
cmp ecx, edi
jae 0x4dd8b6
mov eax, dword [esp + 0x80]
mov ebx, dword [esp + 0x6c]
mov edi, dword [esp + 0x60]
mov dword [esp + 0x14], eax
mov eax, dword [esp]
cmp ebx, 0xffffffff
mov dword [esp + 0x9c], edi
lea esi, [eax - 1]
mov dword [esp + 0x88], esi
mov esi, dword [esp + 0x50]
mov dword [esp + 0x1c], esi
mov esi, dword [esp + 0x54]
mov dword [esp + 0x18], esi
mov esi, dword [esp + 0x58]
mov dword [esp + 0x24], esi
je 0x4ddad1
mov dword [esp + 0x10], ebx
mov ebx, eax
lea eax, [eax + eax*2 - 1]
sub ebx, edi
mov edi, dword [esp + 8]
mov dword [esp + 0x30], eax
mov eax, 1
sub eax, esi
mov dword [esp + 0x34], ebx
mov dword [esp + 0x28], eax
mov eax, dword [esp + 4]
mov ebx, edx
mov edx, 1
movzx ecx, byte [eax + ecx]
xor eax, eax
shld eax, edx, cl
shl edx, cl
test cl, 0x20
mov ecx, 0
cmovne eax, edx
cmovne edx, ecx
and eax, dword [esp + 0x18]
and edx, dword [esp + 0x1c]
or edx, eax
je 0x4dd70e
mov esi, dword [esp + 0x10]
mov edx, ebx
jmp 0x4dd79f
mov ecx, dword [esp]
mov eax, ebx
mov eax, dword [esp + 0x88]
lea edx, [ebx + ecx]
add eax, edx
cmp eax, edi
jae 0x4dd8b6
mov ecx, dword [esp + 4]
mov esi, 1
mov edi, 1
movzx ecx, byte [ecx + eax]
xor eax, eax
shld eax, esi, cl
shl edi, cl
test cl, 0x20
mov ecx, 0
cmovne eax, edi
cmovne edi, ecx
and eax, dword [esp + 0x18]
and edi, dword [esp + 0x1c]
or edi, eax
je 0x4dd75e
xor esi, esi
jmp 0x4dd79f
add ebx, dword [esp + 0x30]
cmp ebx, dword [esp + 8]
jae 0x4dd8b6
mov eax, dword [esp + 4]
mov esi, dword [esp]
mov edi, 1
movzx ecx, byte [eax + ebx]
xor eax, eax
add edx, esi
xor esi, esi
shld eax, edi, cl
shl edi, cl
test cl, 0x20
cmovne eax, edi
cmovne edi, esi
add ebx, dword [esp]
and eax, dword [esp + 0x18]
and edi, dword [esp + 0x1c]
or edi, eax
je 0x4dd762
mov ecx, dword [esp + 0x24]
mov eax, esi
mov dword [esp + 0x10], esi
cmp ecx, esi
mov esi, ecx
cmova eax, ecx
cmp eax, dword [esp]
jae 0x4dd7de
mov ecx, dword [esp + 4]
lea edi, [ecx + edx]
mov ecx, eax
lea ebx, [edx + ecx]
cmp ebx, dword [esp + 8]
jae 0x4de0b3
mov ebx, dword [esp + 0x14]
movzx ebx, byte [ebx + ecx]
cmp bl, byte [edi + ecx]
jne 0x4dd835
inc ecx
cmp dword [esp], ecx
jne 0x4dd7be
mov edi, dword [esp + 8]
mov ecx, esi
nop word cs:[eax + eax]
nop
cmp dword [esp + 0x10], ecx
jae 0x4dd9a5
dec ecx
cmp ecx, dword [esp]
jae 0x4de08d
lea eax, [ecx + edx]
cmp eax, edi
jae 0x4de097
mov esi, dword [esp + 0x14]
movzx ebx, byte [esi + ecx]
mov esi, edi
mov edi, dword [esp + 4]
cmp bl, byte [edi + eax]
mov edi, esi
je 0x4dd7f0
add edx, dword [esp + 0x9c]
mov eax, dword [esp + 0x34]
mov dword [esp + 0x10], eax
jmp 0x4dd847
add edx, dword [esp + 0x28]
mov edi, dword [esp + 8]
mov dword [esp + 0x10], 0
add edx, ecx
mov eax, dword [esp + 0x88]
lea ecx, [edx + eax]
cmp ecx, edi
jb 0x4dd6d3
jmp 0x4dd8b6
mov edi, 1
push esi
push dword [esp + 4]
push edi
call sub.msvcrt.dll_memcpy
add esp, 0xc
movsd xmm1, qword [esp + 0x50]
mov eax, dword [esp + 0x8c]
movsd xmm0, qword [esp + 0x48]
movsd qword [eax + 0x30], xmm1
movsd xmm1, qword [esp + 0x58]
movsd qword [eax + 0x28], xmm0
movsd qword [eax + 0x38], xmm1
mov dword [eax], 0x1c
jmp 0x4dd3fa
mov edi, 1
jmp 0x4dd3be
cmp byte [esp + 0x56], 0
je 0x4dd9ac
mov ebx, dword [esp + 0x2c]
mov eax, dword [esp + 0xc]
mov dword [esp + 0x4c], ebx
mov dword [esp + 0x50], eax
mov dword [esp + 0x54], 0
mov dword [esp + 0x58], eax
mov dword [esp + 0x48], 0x3a
mov dword [esp + 0x5c], 1
mov dword [esp + 0x60], 0x3a
lea ecx, [esp + 0x38]
lea edx, [esp + 0x48]
call fcn.004d0480
cmp dword [esp + 0x38], 0
je 0x4dd928
mov esi, dword [esp + 0x3c]
test esi, esi
je 0x4dd99e
cmp esi, dword [esp + 0xc]
jae 0x4dd9e9
cmp byte [ebx + esi], 0xbf
jg 0x4dd9ef
mov edx, 0x5b29f8
jmp 0x4dde52
mov eax, dword [esp + 0xc]
mov dword [esp + 0x4c], ebx
mov dword [esp + 0x50], eax
mov dword [esp + 0x54], 0
mov dword [esp + 0x58], eax
mov dword [esp + 0x48], 0x3d
mov dword [esp + 0x5c], 1
mov dword [esp + 0x60], 0x3d
lea esi, [esp + 0x38]
lea edx, [esp + 0x48]
mov ecx, esi
call fcn.004d0480
cmp dword [esp + 0x38], 0
je 0x4ddbf9
mov eax, dword [esp + 0x3c]
test eax, eax
je 0x4ddd21
cmp eax, dword [esp + 0xc]
jae 0x4ddd1b
cmp byte [ebx + eax], 0xbf
jg 0x4ddd21
mov esi, eax
mov edx, 0x5b2a18
jmp 0x4dde52
mov edi, 1
jmp 0x4dda16
mov esi, edx
jmp 0x4dde39
mov eax, dword [esp + 0x4c]
movzx ebx, byte [esp + 0x54]
mov ecx, eax
test eax, eax
mov eax, edi
je 0x4dddbe
mov eax, edi
sub eax, ecx
jbe 0x4dddb8
mov esi, dword [esp + 4]
mov edx, ecx
cmp byte [esi + ecx], 0xc0
jge 0x4dddbe
mov esi, edi
mov edx, 0x5b2210
mov edi, ecx
jmp 0x4dde60
jne 0x4dd91e
test esi, esi
js 0x4de1a1
mov eax, dword [0x607474]
mov ecx, esi
movzx eax, byte [eax]
push 1
push ecx
call fcn.00401610
add esp, 8
mov edi, eax
test eax, eax
je 0x4de194
push esi
push ebx
push edi
call sub.msvcrt.dll_memcpy
add esp, 0xc
mov dword [esp + 0x48], edi
mov dword [esp + 0x4c], esi
mov dword [esp + 0x50], esi
inc esi
mov dword [esp], edi
cmp dword [esp + 0xc], esi
jbe 0x4dda57
cmp byte [ebx + esi], 0xbf
jg 0x4dda59
push 0x5b2a08
mov eax, dword [esp + 0x10]
push eax
push esi
push eax
push ebx
call fcn.004297c0
add esp, 0x14
jmp 0x4de1ef
jne 0x4dda3d
mov eax, dword [esp + 0xc]
mov edi, esi
sub eax, esi
mov esi, eax
je 0x4dda96
setns al
js 0x4de1e3
movzx ebx, al
mov eax, dword [0x607474]
movzx eax, byte [eax]
push ebx
push esi
call fcn.00401610
add esp, 8
test eax, eax
jne 0x4dda9b
push esi
push ebx
call fcn.0041a8c0
add esp, 8
jmp 0x4de1ef
mov eax, 1
mov ecx, dword [esp + 0x2c]
add ecx, edi
push esi
push ecx
mov dword [esp + 0x10], eax
push eax
call sub.msvcrt.dll_memcpy
add esp, 0xc
mov eax, dword [esp + 0x4c]
mov ecx, dword [esp + 0x50]
movsd xmm0, qword [esp + 0xa0]
mov edx, dword [esp + 0xa8]
mov bl, 1
mov edi, esi
jmp 0x4ddf67
lea edi, [esi - 1]
cmp esi, eax
mov esi, eax
mov dword [esp + 0x28], edi
jae 0x4ddc4b
mov eax, dword [esp + 4]
lea ebx, [esi + esi - 1]
mov dword [esp + 0x34], ebx
lea esi, [eax + esi*2 - 1]
mov eax, dword [esp + 0x14]
mov dword [esp + 0x30], esi
add eax, edi
mov dword [esp + 0xb4], eax
mov eax, dword [esp + 4]
movzx ecx, byte [eax + ecx]
xor eax, eax
mov edi, 1
shld eax, edi, cl
shl edi, cl
test cl, 0x20
mov ecx, 0
cmovne eax, edi
cmovne edi, ecx
and eax, dword [esp + 0x18]
and edi, dword [esp + 0x1c]
or edi, eax
jne 0x4ddb47
lea eax, [ebx + edx]
cmp eax, dword [esp + 8]
jae 0x4dd8b6
movzx ecx, byte [esi + edx]
add edx, dword [esp]
jmp 0x4ddb0b
mov eax, dword [esp + 4]
mov esi, dword [esp]
mov ecx, edx
mov dword [esp + 0x10], edx
not ecx
lea ebx, [eax + edx]
mov eax, dword [esp + 0x24]
mov edx, dword [esp + 0x10]
lea edi, [edx + eax]
mov edx, dword [esp + 8]
cmp edi, edx
jae 0x4de0ab
mov edi, edx
mov edx, dword [esp + 0x14]
movzx edx, byte [edx + eax]
cmp dl, byte [ebx + eax]
jne 0x4ddbd6
inc eax
dec ecx
cmp esi, eax
jne 0x4ddb5d
mov ecx, dword [esp + 0x28]
cmp ecx, esi
jae 0x4de154
mov eax, dword [esp + 0x10]
mov ebx, dword [esp + 0x24]
mov edi, dword [esp + 8]
add ecx, eax
mov eax, dword [esp + 0xb4]
sub ebx, 1
jb 0x4ddd12
cmp ecx, edi
jae 0x4de0a2
movzx edx, byte [eax]
mov esi, dword [esp + 4]
dec eax
cmp dl, byte [esi + ecx]
mov esi, dword [esp + 0x9c]
lea ecx, [ecx - 1]
je 0x4ddba6
mov edx, dword [esp + 0x10]
add edx, esi
jmp 0x4ddbda
neg ecx
mov edx, ecx
mov eax, dword [esp + 0x88]
mov ebx, dword [esp + 0x34]
mov esi, dword [esp + 0x30]
lea ecx, [edx + eax]
cmp ecx, edi
jb 0x4ddb03
jmp 0x4dd8b6
mov edx, ebx
lea ecx, [esp + 0x48]
push dword [esp + 0xc]
call fcn.004cd400
add esp, 4
mov eax, dword [esp + 0x48]
movsd xmm0, qword [esp + 0xa0]
mov edx, dword [esp + 0xa8]
xor ebx, ebx
mov dword [esp], eax
mov eax, dword [esp + 0x4c]
mov dword [esp + 0x98], edx
movsd qword [esp + 0x90], xmm0
mov dl, 1
mov dword [esp + 0x14], eax
mov eax, dword [esp + 0x50]
mov dword [esp + 4], eax
jmp 0x4ddf83
mov eax, dword [esp + 4]
cmp edi, esi
jae 0x4de0d5
add dword [esp + 0x14], edi
lea ebx, [esi + esi - 1]
lea eax, [eax + esi*2 - 1]
mov dword [esp + 0x34], eax
mov dword [esp + 0x30], ebx
mov eax, dword [esp + 4]
movzx ecx, byte [eax + ecx]
mov edi, 1
xor eax, eax
mov esi, 1
shld eax, esi, cl
shl edi, cl
test cl, 0x20
mov ecx, 0
cmovne eax, edi
cmovne edi, ecx
and eax, dword [esp + 0x18]
and edi, dword [esp + 0x1c]
or edi, eax
jne 0x4ddcb8
lea eax, [ebx + edx]
cmp eax, dword [esp + 8]
jae 0x4dd8b6
mov eax, dword [esp + 0x34]
movzx ecx, byte [eax + edx]
add edx, dword [esp]
jmp 0x4ddc73
mov eax, dword [esp + 0x28]
mov ebx, dword [esp + 0x24]
mov edi, dword [esp + 8]
mov dword [esp + 0x10], edx
lea ecx, [eax + edx]
mov eax, dword [esp + 0x14]
sub ebx, 1
jb 0x4ddd12
cmp ecx, edi
jae 0x4de0a2
movzx edx, byte [eax]
mov esi, dword [esp + 4]
dec eax
cmp dl, byte [esi + ecx]
lea ecx, [ecx - 1]
je 0x4ddccf
mov edx, dword [esp + 0x10]
mov eax, dword [esp + 0x88]
mov ebx, dword [esp + 0x30]
add edx, dword [esp + 0x9c]
lea ecx, [edx + eax]
cmp ecx, edi
jb 0x4ddc6b
jmp 0x4dd8b6
mov esi, dword [esp + 0x10]
jmp 0x4dde39
jne 0x4dd992
mov edx, ebx
mov edi, eax
lea ecx, [esp + 0x48]
push eax
call fcn.004cd400
add esp, 4
mov eax, dword [esp + 0x50]
movsd xmm0, qword [esp + 0x48]
mov ecx, edi
inc ecx
mov dword [esp + 0x40], eax
movsd qword [esp + 0x38], xmm0
mov edx, ebx
push dword [esp + 0xc]
call fcn.004cce60
add esp, 4
mov edi, edx
mov edx, eax
lea ecx, [esp + 0x48]
push edi
call fcn.004cd400
add esp, 4
mov esi, dword [esp + 0x38]
mov edx, dword [esp + 0xa8]
mov eax, dword [esp + 0x48]
movsd xmm0, qword [esp + 0xa0]
mov ecx, dword [esp + 0x4c]
mov edi, dword [esp + 0x50]
xor ebx, ebx
mov dword [esp], esi
mov dword [esp + 0x98], edx
mov esi, dword [esp + 0x3c]
mov edx, dword [esp + 0x40]
mov dword [esp + 8], eax
movsd qword [esp + 0x90], xmm0
mov dword [esp + 4], edx
mov dword [esp + 0x14], esi
mov dl, 2
jmp 0x4ddf83
jne 0x4dd9db
test eax, eax
je 0x4dde12
mov edi, dword [esp + 4]
mov byte [esp], bl
movzx edx, byte [edi + ecx]
test dl, dl
jns 0x4dde2d
movzx eax, byte [edi + ecx + 1]
mov esi, edx
mov ebx, ecx
and esi, 0x1f
and eax, 0x3f
cmp dl, 0xe0
jb 0x4dde1d
movzx edi, byte [edi + ebx + 2]
shl eax, 6
and edi, 0x3f
or edi, eax
cmp dl, 0xf0
jb 0x4dde26
mov eax, dword [esp + 4]
and esi, 7
shl edi, 6
shl esi, 0x12
movzx edx, byte [eax + ebx + 3]
and edx, 0x3f
or edx, edi
or edx, esi
jmp 0x4dde2d
test bl, bl
mov esi, ecx
jne 0x4dde39
jmp 0x4dd8b6
shl esi, 6
or esi, eax
mov edx, esi
jmp 0x4dde2d
shl esi, 0xc
or edi, esi
mov edx, edi
cmp byte [esp], 0
je 0x4de012
mov esi, ecx
test esi, esi
je 0x4dde78
cmp esi, dword [esp + 0xc]
mov ebx, dword [esp + 0x2c]
jae 0x4dde83
cmp byte [ebx + esi], 0xbf
jg 0x4dde85
mov edx, 0x5b29d8
mov eax, dword [esp + 0xc]
xor edi, edi
mov dword [esp + 4], ebx
mov dword [esp + 8], eax
push edx
push esi
push edi
push dword [esp + 0x14]
push dword [esp + 0x14]
call fcn.004297c0
add esp, 0x14
jmp 0x4de1ef
mov ebx, dword [esp + 0x2c]
mov edi, 1
jmp 0x4ddeac
jne 0x4dde4d
test esi, esi
js 0x4de1a1
mov eax, dword [0x607474]
mov ecx, esi
movzx eax, byte [eax]
push 1
push ecx
call fcn.00401610
add esp, 8
mov edi, eax
test eax, eax
je 0x4de194
push esi
push ebx
push edi
call sub.msvcrt.dll_memcpy
add esp, 0xc
mov dword [esp + 0x48], edi
mov dword [esp + 0x4c], esi
mov dword [esp + 0x50], esi
add esi, 2
mov dword [esp], edi
cmp dword [esp + 0xc], esi
jbe 0x4ddef2
cmp byte [ebx + esi], 0xbf
jg 0x4ddef4
push 0x5b29e8
mov eax, dword [esp + 0x10]
push eax
push esi
push eax
push dword [esp + 0x3c]
call fcn.004297c0
add esp, 0x14
jmp 0x4de1ef
jne 0x4dded5
mov eax, dword [esp + 0xc]
mov ebx, esi
sub eax, esi
mov esi, eax
je 0x4ddf31
setns al
js 0x4de1ea
movzx edi, al
mov eax, dword [0x607474]
movzx eax, byte [eax]
push edi
push esi
call fcn.00401610
add esp, 8
test eax, eax
jne 0x4ddf36
push esi
push edi
call fcn.0041a8c0
add esp, 8
jmp 0x4de1ef
mov eax, 1
mov ecx, dword [esp + 0x2c]
add ecx, ebx
push esi
push ecx
mov dword [esp + 0x10], eax
push eax
call sub.msvcrt.dll_memcpy
add esp, 0xc
mov eax, dword [esp + 0x4c]
mov ecx, dword [esp + 0x50]
movsd xmm0, qword [esp + 0xa0]
mov edx, dword [esp + 0xa8]
mov edi, esi
mov bl, 2
mov dword [esp + 4], ecx
mov dword [esp + 0x98], edx
mov dword [esp + 0x14], eax
movsd qword [esp + 0x90], xmm0
mov dl, 2
mov ecx, esi
mov eax, dword [esp + 0x98]
movsd xmm0, qword [esp + 0x90]
mov esi, dword [esp + 0x20]
cmp dword [esp + 0xb8], 0x50
mov dword [esp + 0x50], eax
movsd qword [esp + 0x48], xmm0
mov eax, dword [esi + 8]
mov dword [esp + 0x5c], eax
mov eax, dword [esp + 0x8c]
movsd xmm1, qword [esi]
mov esi, dword [esp + 4]
movsd qword [eax + 0x20], xmm0
movsd qword [esp + 0x54], xmm1
movsd xmm0, qword [esp + 0x58]
movsd xmm1, qword [esp + 0x50]
movsd qword [eax + 0x30], xmm0
movsd qword [eax + 0x28], xmm1
mov byte [eax + 4], dl
mov byte [eax + 5], bl
mov ebx, dword [esp]
mov dword [eax + 8], ebx
mov dword [eax + 0x10], esi
mov ebx, dword [esp + 0x14]
mov esi, dword [esp + 8]
mov dword [eax + 0xc], ebx
mov dword [eax + 0x14], esi
mov dword [eax + 0x18], ecx
mov dword [eax + 0x1c], edi
sete byte [eax + 0x38]
mov dword [eax], 0x1f
jmp 0x4dd403
cmp edx, 0x110000
je 0x4dd8b6
mov edi, 1
cmp edx, 0x80
jb 0x4de046
mov edi, 2
cmp edx, 0x800
jb 0x4de046
cmp edx, 0x10000
mov edi, 4
sbb edi, 0
add edi, ecx
je 0x4de061
mov eax, dword [esp + 8]
sub eax, edi
jbe 0x4de067
mov ecx, dword [esp + 4]
cmp byte [ecx + edi], 0xc0
jge 0x4de06d
jmp 0x4de1f1
mov eax, dword [esp + 8]
jmp 0x4de06d
jne 0x4de1f1
test eax, eax
je 0x4de07d
mov eax, dword [esp + 4]
movzx eax, byte [eax + edi]
test al, al
js 0x4de084
mov esi, edi
jmp 0x4dde39
cmp al, 0xe0
mov esi, edi
jmp 0x4dde39
mov esi, dword [esp]
mov edi, 0x5b1e24
jmp 0x4de0c5
mov esi, edi
mov edi, 0x5b1e34
mov ecx, eax
jmp 0x4de0c5
mov esi, edi
mov edi, 0x5b1e34
jmp 0x4de0c5
mov edx, dword [esp + 0x10]
mov eax, dword [esp + 0x24]
mov esi, dword [esp + 8]
add edx, eax
mov edi, 0x5b1e44
cmp esi, edx
cmova edx, esi
mov ecx, edx
push edi
push esi
push ecx
call fcn.00425270
add esp, 0xc
jmp 0x4de1ef
movzx ecx, byte [eax + ecx]
mov esi, 1
xor eax, eax
xor edi, edi
shld eax, esi, cl
shl esi, cl
test cl, 0x20
cmovne eax, esi
cmovne esi, edi
and eax, dword [esp + 0x18]
and esi, dword [esp + 0x1c]
or esi, eax
jne 0x4de145
mov ecx, dword [esp]
mov eax, dword [esp + 4]
lea ebx, [ecx + ecx - 1]
lea esi, [eax + ecx*2 - 1]
lea eax, [ebx + edx]
cmp eax, dword [esp + 8]
jae 0x4dd8b6
movzx ecx, byte [esi + edx]
xor eax, eax
mov edi, 1
add edx, dword [esp]
shld eax, edi, cl
shl edi, cl
test cl, 0x20
mov ecx, 0
cmovne eax, edi
cmovne edi, ecx
and eax, dword [esp + 0x18]
and edi, dword [esp + 0x1c]
or edi, eax
je 0x4de10b
cmp dword [esp + 0x24], 0
mov esi, edx
je 0x4dde39
jmp 0x4de163
cmp dword [esp + 0x24], 0
mov esi, dword [esp + 0x10]
je 0x4dde39
mov ecx, dword [esp + 0x28]
mov esi, dword [esp]
mov edi, 0x5b1e24
jmp 0x4de0c5
lea eax, [esp + 0x48]
push 0x5b29c4
push 0x5b1ff0
push eax
push 0x10
push str.already_borrowed_usr_local_cargo_registry_src_index.crates.io_6f17d22bba15001f_regex_syntax_0.7.4_src_ast_parse.rs
call fcn.004254f0
add esp, 0x14
ud2
push esi
push 1
call fcn.0041a8c0
add esp, 8
jmp 0x4de1ef
call fcn.0041a880
jmp 0x4de1ef
push 0x5b2a88
push 0x3e
push str.assertion_failed:_self.char____p__self.char____P
call fcn.004251d0
add esp, 0xc
ud2
mov dword [esp + 0x48], 0
mov edx, 0x5b28a4
lea ecx, [esp + 0x38]
push 0x5b2a38
lea eax, [esp + 0x4c]
push eax
call fcn.004cd220
add esp, 8
jmp 0x4de1ef
call fcn.0041a880
jmp 0x4de1ef
call fcn.0041a880
ud2
mov esi, dword [esp + 8]
mov edx, 0x5b2210
jmp 0x4dde60