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

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
and esp, 0xfffffff0
sub esp, 0x120
call 0x49fadc
pop eax
mov ebx, ecx
lea edx, [ecx + 0xc8]
mov dword [esp + 0x9c], eax
lea eax, [ecx + 0xc0]
add ecx, 0xcc
lea edi, [ebx + 0xa0]
mov dword [esp + 0x10], edx
mov dword [esp + 0x60], eax
lea eax, [ebx + 0xc4]
mov dword [esp + 0xc], ecx
mov dword [esp + 0x18], edi
mov dword [esp + 0x38], eax
lea eax, [ebx + 0x38]
mov dword [esp + 0x58], eax
lea eax, [ebx + 0x18]
mov dword [esp + 0x5c], eax
mov eax, edx
mov eax, dword [eax]
cmp eax, dword [ecx]
je 0x49fb71
mov ecx, ebx
call fcn.004a36e3
test al, al
je 0x4a0f5b
mov eax, dword [ebx + 0xf0]
mov ecx, dword [ebx + 0xf8]
cmp eax, ecx
je 0x4a0ef6
cmp byte [eax], 0
je 0x49fb6c
mov edx, dword [eax + 8]
mov esi, dword [eax + 0xc]
xor esi, dword [ebx + 0xd4]
xor edx, dword [ebx + 0xd0]
or edx, esi
je 0x49fb71
add eax, 0x28
jmp 0x49fb49
xor edx, edx
mov ecx, ebx
inc edx
push 0
call fcn.004a37f5
add esp, 4
test al, al
je 0x4a0f5b
cmp byte [ebx + 0xb8], 0
je 0x49fd8f
xor edx, edx
mov ecx, ebx
inc edx
push 0
call fcn.004a37f5
add esp, 4
mov esi, 0x4cd5ef
test al, al
je 0x49fcfb
mov eax, dword [ebx + 0xb0]
or eax, dword [ebx + 0xb4]
jne 0x49fbda
mov eax, dword [ebx + 0x70]
cmp byte [eax], 0xef
jne 0x49fbda
cmp byte [eax + 1], 0xbb
jne 0x49fbda
cmp byte [eax + 2], 0xbf
jne 0x49fbda
mov ecx, ebx
call fcn.004a3f4d
xor edx, edx
mov ecx, ebx
inc edx
push 0
call fcn.004a37f5
add esp, 4
test al, al
je 0x49fcfb
mov eax, dword [ebx + 0x70]
movzx ecx, byte [eax]
cmp ecx, 0x20
je 0x49fbd3
cmp dword [ebx + 0xbc], 0
je 0x49fc11
cmp ecx, 9
je 0x49fbd3
cmp ecx, 0x23
je 0x49fc24
jmp 0x49fc7e
cmp cl, 9
jne 0x49fc1f
cmp byte [ebx + 0xec], 0
je 0x49fbd3
cmp cl, 0x23
jne 0x49fc7e
mov eax, dword [ebx + 0x70]
movzx ecx, byte [eax]
cmp ecx, 0xc2
je 0x49fc4b
cmp ecx, 0xe2
je 0x49fc53
cmp ecx, 0xd
ja 0x49fc62
mov edx, 0x2401
bt edx, ecx
jae 0x49fc62
jmp 0x49fc7e
cmp byte [eax + 1], 0x85
jne 0x49fc62
jmp 0x49fcc1
cmp byte [eax + 1], 0x80
jne 0x49fc62
mov al, byte [eax + 2]
and al, 0xfe
cmp al, 0xa8
je 0x49fcc1
mov ecx, ebx
call fcn.004a3f4d
xor edx, edx
mov ecx, ebx
inc edx
push 0
call fcn.004a37f5
add esp, 4
test al, al
jne 0x49fc24
jmp 0x49fcfb
movzx ecx, cl
mov esi, 0x4cc7d4
cmp ecx, 0xc1
jg 0x49fc9a
cmp ecx, 0xa
je 0x49fcc1
cmp ecx, 0xd
je 0x49fcc1
jmp 0x49fcfb
cmp ecx, 0xe2
je 0x49fcb2
cmp ecx, 0xc2
jne 0x49fcfb
cmp byte [eax + 1], 0x85
je 0x49fcc1
jmp 0x49fcfb
cmp byte [eax + 1], 0x80
jne 0x49fcfb
mov al, byte [eax + 2]
and al, 0xfe
cmp al, 0xa8
jne 0x49fcfb
mov ecx, ebx
mov edx, 2
push 0
call fcn.004a37f5
add esp, 4
test al, al
mov esi, 0x4cd5ef
je 0x49fcfb
mov ecx, ebx
call fcn.004a3fe5
cmp dword [ebx + 0xbc], 0
jne 0x49fb95
mov byte [ebx + 0xec], 1
jmp 0x49fb95
cmp byte [esi], 0
jne 0x4a0f5b
mov ecx, ebx
call fcn.004a36e3
test al, al
je 0x4a0f5b
mov edx, dword [ebx + 0xb0]
mov ecx, ebx
push dword [ebx + 0xb4]
call fcn.004a4115
add esp, 4
mov ecx, ebx
mov edx, 4
push 0
call fcn.004a37f5
add esp, 4
test al, al
je 0x4a0f5b
mov eax, dword [ebx + 0x70]
movzx ecx, byte [eax]
test ecx, ecx
je 0x49feef
mov edx, dword [ebx + 0xb0]
or edx, dword [ebx + 0xb4]
je 0x49ffdd
cmp ecx, 0x5a
jg 0x4a0116
lea edx, [ecx - 0x20]
cmp edx, 0x20
ja 0x4a0166
mov edx, dword [edx*4 + 0x4a0f68]
add edx, dword [esp + 0x9c]
jmp edx
mov dword [ebx + 0xe8], 0xffffffff
mov edx, dword [ebx + 0xf8]
cmp edx, dword [ebx + 0xf4]
jne 0x49fdf0
mov ecx, dword [ebx + 0xf0]
sub edx, ecx
mov eax, edx
sar eax, 0x1f
shld eax, edx, 1
add edx, edx
push eax
call fcn.0049d07c
add esp, 4
mov edx, dword [ebx + 0xf8]
mov ecx, dword [ebx + 0xf0]
mov esi, dword [ebx + 0xf4]
sub edx, ecx
sub esi, ecx
add edx, eax
lea ecx, [eax + esi*2]
mov dword [ebx + 0xf8], edx
mov dword [ebx + 0xf4], ecx
mov dword [ebx + 0xf0], eax
xor ecx, ecx
mov al, 1
xorps xmm0, xmm0
mov word [edx], 0
mov dword [edx + 0x20], ecx
mov dword [edx + 0x18], ecx
mov dword [edx + 0x10], ecx
mov dword [edx + 8], ecx
mov dword [edx + 0x1c], ecx
mov dword [edx + 0x14], ecx
mov dword [edx + 0xc], ecx
mov dword [edx + 0x24], ecx
add dword [ebx + 0xf8], 0x28
mov byte [ebx + 0xec], al
mov byte [ebx + 0xb8], al
mov dword [esp + 0xd0], ecx
movaps xmmword [esp + 0xc0], xmm0
lea eax, [esp + 0xd4]
movsd xmm0, qword [edi + 0x10]
movsd qword [eax + 0x10], xmm0
movsd xmm0, qword [edi]
movsd xmm1, qword [edi + 8]
movsd qword [eax + 8], xmm1
movsd qword [eax], xmm0
movsd xmm0, qword [edi + 0x10]
movsd qword [esp + 0x80], xmm0
movsd xmm0, qword [edi]
movsd xmm1, qword [edi + 8]
movsd qword [esp + 0x78], xmm1
movsd qword [esp + 0x70], xmm0
mov eax, dword [ebx + 0xcc]
mov esi, dword [ebx + 0x90]
cmp eax, dword [ebx + 0xc4]
jne 0x49feab
mov ecx, dword [esp + 0x60]
mov edx, dword [esp + 0x10]
push dword [esp + 0x38]
mov edi, dword [esp + 0x10]
push edi
call fcn.0049d0d6
add esp, 8
mov eax, dword [edi]
mov dword [eax], 1
mov dword [eax + 4], 0
mov dword [eax + 8], esi
lea edi, [eax + 0xc]
mov ecx, 0xb
lea esi, [esp + 0xc0]
rep movsd dword es:[edi], dword [esi]
movsd xmm0, qword [esp + 0x80]
mov ecx, dword [esp + 0x10]
movsd qword [eax + 0x48], xmm0
movsd xmm0, qword [esp + 0x70]
movsd xmm1, qword [esp + 0x78]
jmp 0x4a00fa
mov eax, dword [ebx + 0xb0]
or eax, dword [ebx + 0xb4]
je 0x49ff2e
xor edx, edx
mov dword [ebx + 0xb4], edx
mov dword [ebx + 0xb0], edx
mov eax, dword [ebx + 0xa8]
mov ecx, dword [ebx + 0xac]
add eax, 1
adc ecx, edx
jb 0x4a0f5f
mov dword [ebx + 0xa8], eax
mov dword [ebx + 0xac], ecx
xor edx, edx
mov ecx, ebx
dec edx
push 0xffffffffffffffff
call fcn.004a4115
add esp, 4
mov eax, dword [ebx + 0xf8]
cmp byte [eax - 0x28], 0
je 0x4a000e
cmp byte [eax - 0x27], 0
je 0x4a000e
movsd xmm0, qword [eax - 8]
movsd qword [esp + 0x80], xmm0
movsd xmm0, qword [eax - 0x18]
movsd xmm1, qword [eax - 0x10]
mov eax, dword [esp + 0x58]
movsd qword [esp + 0x78], xmm1
movsd qword [esp + 0x70], xmm0
mov dword [ebx], 3
mov dword [ebx + 0x30], str.while_scanning_a_simple_key
movsd xmm0, qword [esp + 0x80]
movsd qword [eax + 0x10], xmm0
movsd xmm0, qword [esp + 0x70]
movsd xmm1, qword [esp + 0x78]
movsd qword [eax + 8], xmm1
movsd qword [eax], xmm0
mov dword [ebx + 4], str.could_not_find_expected_:
mov eax, dword [esp + 0x5c]
movsd xmm0, qword [edi + 0x10]
movsd qword [eax + 0x10], xmm0
movsd xmm0, qword [edi]
movsd xmm1, qword [edi + 8]
movsd qword [eax + 8], xmm1
movsd qword [eax], xmm0
mov eax, 0x4cd5ef
jmp 0x4a0017
cmp ecx, 0x5a
jg 0x4a0116
lea edx, [ecx - 0x20]
cmp edx, 0x20
ja 0x4a0166
mov edx, dword [edx*4 + 0x4a0fec]
add edx, dword [esp + 0x9c]
jmp edx
mov byte [eax - 0x28], 0
mov eax, 0x4cc7d4
cmp byte [eax], 0
jne 0x4a0f5b
xor eax, eax
xorps xmm0, xmm0
mov byte [ebx + 0xec], 0
mov dword [esp + 0xd4], eax
mov dword [esp + 0xd0], eax
mov dword [esp + 0xd8], eax
movaps xmmword [esp + 0xc0], xmm0
lea eax, [esp + 0xd4]
movsd xmm0, qword [edi + 0x10]
movsd qword [eax + 0x18], xmm0
movsd xmm0, qword [edi]
movsd xmm1, qword [edi + 8]
movsd qword [eax + 0x10], xmm1
movsd qword [eax + 8], xmm0
movsd xmm0, qword [edi + 0x10]
movsd qword [esp + 0xb0], xmm0
movsd xmm0, qword [edi]
movsd xmm1, qword [edi + 8]
movsd qword [esp + 0xa8], xmm1
movsd qword [esp + 0xa0], xmm0
mov eax, dword [ebx + 0xcc]
cmp eax, dword [ebx + 0xc4]
jne 0x4a00bf
mov ecx, dword [esp + 0x60]
mov edx, dword [esp + 0x10]
push dword [esp + 0x38]
mov esi, dword [esp + 0x10]
push esi
call fcn.0049d0d6
add esp, 8
mov eax, dword [esi]
mov dword [eax], 2
lea edi, [eax + 4]
mov ecx, 0xd
lea esi, [esp + 0xc0]
rep movsd dword es:[edi], dword [esi]
movsd xmm0, qword [esp + 0xb0]
mov ecx, dword [esp + 0x10]
movsd qword [eax + 0x48], xmm0
movsd xmm0, qword [esp + 0xa0]
movsd xmm1, qword [esp + 0xa8]
movsd qword [eax + 0x40], xmm1
movsd qword [eax + 0x38], xmm0
mov eax, ecx
mov ecx, dword [esp + 0xc]
mov edi, dword [esp + 0x18]
add dword [ecx], 0x50
jmp 0x49fb28
cmp ecx, 0x7b
jg 0x4a013b
cmp ecx, 0x5f
jg 0x4a0182
cmp ecx, 0x5b
je 0x4a02a1
cmp ecx, 0x5d
jne 0x4a0348
mov ecx, ebx
mov edx, 0xb
jmp 0x4a015c
cmp ecx, 0xc1
jg 0x4a01a0
cmp ecx, 0x7c
je 0x4a02b2
cmp ecx, 0x7d
jne 0x4a0348
mov ecx, ebx
mov edx, 0xd
call fcn.004a4faa
jmp 0x4a0e59
cmp ecx, 0xd
ja 0x4a0348
mov edx, 0x2600
bt edx, ecx
jb 0x4a02d4
jmp 0x4a0348
cmp ecx, 0x60
je 0x4a02d4
cmp ecx, 0x7b
jne 0x4a0348
mov ecx, ebx
mov edx, 0xc
jmp 0x4a02a8
cmp ecx, 0xc2
je 0x4a02ce
cmp ecx, 0xe2
jne 0x4a0348
cmp byte [eax + 1], 0x80
jne 0x4a0348
mov dl, byte [eax + 2]
and dl, 0xfe
cmp dl, 0xa8
je 0x4a02d4
jmp 0x4a0348
mov ecx, ebx
mov edx, 0xa
call fcn.004a4dd0
jmp 0x4a0e59
cmp dword [ebx + 0xbc], 0
jne 0x4a0f07
xor edx, edx
mov ecx, ebx
inc edx
call fcn.004a6301
jmp 0x4a0e59
cmp byte [eax + 1], 0x85
jne 0x4a0348
cmp dword [ebx + 0xbc], 0
jne 0x4a0f07
cmp ecx, 0x3f
je 0x4a02ef
cmp ecx, 0x3a
jne 0x4a0f07
movzx ecx, byte [eax + 1]
cmp ecx, 0xe1
jg 0x4a030e
cmp ecx, 0xc2
jne 0x4a032a
cmp byte [eax + 2], 0x85
jne 0x4a0348
jmp 0x4a0f07
cmp ecx, 0xe2
jne 0x4a0348
cmp byte [eax + 2], 0x80
jne 0x4a0348
mov al, byte [eax + 3]
and al, 0xfe
cmp al, 0xa8
jne 0x4a0348
jmp 0x4a0f07
lea eax, [ecx - 9]
cmp eax, 0x17
ja 0x4a0340
mov edx, 0x800013
bt edx, eax
jb 0x4a0f07
test ecx, ecx
je 0x4a0f07
mov ecx, ebx
call fcn.004a78f0
test al, al
je 0x4a0f5b
mov byte [ebx + 0xec], 0
mov ecx, 0x10
xor edx, edx
xor esi, esi
mov eax, dword [ebx + 0xe8]
inc eax
mov dword [esp + 0x8c], eax
call fcn.0049cc8e
lea ecx, [eax + 0x10]
mov dword [esp + 0x24], eax
mov dword [esp + 0x2c], eax
xor edx, edx
mov dword [eax + 4], esi
mov dword [eax], esi
mov dword [eax + 0xc], esi
mov dword [eax + 8], esi
mov dword [esp + 0x28], ecx
mov ecx, 0x10
call fcn.0049cc8e
lea ecx, [eax + 0x10]
mov dword [esp + 0x64], eax
mov dword [esp + 0x6c], eax
xor edx, edx
mov dword [eax + 4], esi
mov dword [eax], esi
mov dword [eax + 0xc], esi
mov dword [eax + 8], esi
mov dword [esp + 0x68], ecx
mov ecx, 0x10
call fcn.0049cc8e
lea ecx, [eax + 0x10]
mov dword [esp + 0x48], eax
mov dword [esp + 0x50], eax
xor edx, edx
mov dword [eax + 4], esi
mov dword [eax], esi
mov dword [eax + 0xc], esi
mov dword [eax + 8], esi
mov dword [esp + 0x4c], ecx
mov ecx, 0x10
call fcn.0049cc8e
mov dword [eax + 4], esi
mov dword [eax], esi
mov dword [eax + 0xc], esi
mov dword [eax + 8], esi
mov esi, dword [esp + 0x18]
lea ecx, [eax + 0x10]
mov dword [esp + 0x3c], eax
mov dword [esp + 0x44], eax
mov dword [esp + 0x14], 0
mov dword [esp + 0x40], ecx
movsd xmm0, qword [esi + 0x10]
movsd qword [esp + 0x80], xmm0
movsd xmm0, qword [esi]
movsd xmm1, qword [esi + 8]
movsd qword [esp + 0x78], xmm1
movsd qword [esp + 0x70], xmm0
movsd xmm0, qword [esi + 0x10]
movsd qword [esp + 0xd0], xmm0
movsd xmm0, qword [esi]
movsd xmm1, qword [esi + 8]
movsd qword [esp + 0xc8], xmm1
movsd qword [esp + 0xc0], xmm0
mov ecx, ebx
mov edx, 4
push 0
call fcn.004a37f5
add esp, 4
test al, al
je 0x4a0b87
mov ecx, dword [ebx + 0xb0]
mov eax, dword [ebx + 0x70]
or ecx, dword [ebx + 0xb4]
movzx ecx, byte [eax]
je 0x4a0988
cmp ecx, 0x23
je 0x4a0a41
mov edx, dword [esp + 0x48]
mov edi, dword [esp + 0x4c]
mov eax, dword [esp + 0x64]
mov ecx, dword [esp + 0x68]
sub edi, edx
sub ecx, eax
mov dword [esp + 0x54], eax
mov eax, dword [esp + 0x40]
mov dword [esp + 0x94], edx
mov dword [esp + 0x90], edi
mov edi, dword [esp + 0x3c]
mov dword [esp + 0x98], ecx
mov ecx, dword [esp + 0x44]
sub eax, edi
mov dword [esp + 0x34], ecx
mov dword [esp + 0x1c], edi
mov dword [esp + 0xbc], eax
mov ecx, dword [ebx + 0x70]
movzx eax, byte [ecx]
cmp eax, 0xe1
jg 0x4a0501
cmp eax, 0xc2
jne 0x4a052f
cmp byte [ecx + 1], 0x85
jne 0x4a051d
jmp 0x4a087c
cmp eax, 0xe2
jne 0x4a0555
cmp byte [ecx + 1], 0x80
jne 0x4a051d
mov cl, byte [ecx + 2]
and cl, 0xfe
cmp cl, 0xa8
je 0x4a087c
cmp dword [ebx + 0xbc], 0
jne 0x4a0646
jmp 0x4a0679
lea edx, [eax - 9]
cmp edx, 0x17
ja 0x4a054d
mov edi, esi
mov esi, 0x800013
bt esi, edx
mov esi, edi
mov edi, dword [esp + 0x1c]
jb 0x4a087c
test eax, eax
je 0x4a0a41
mov edx, dword [ebx + 0xbc]
cmp eax, 0x3a
jne 0x4a05a9
test edx, edx
je 0x4a05a9
mov dword [esp + 0x30], edx
mov dl, byte [ecx + 1]
movzx edi, dl
cmp edi, 0x7a
jg 0x4a05bb
lea esi, [edi - 0x3f]
cmp esi, 0x1e
ja 0x4a059f
mov dword [esp + 0xb8], esi
mov byte [esp + 0x23], dl
mov esi, 0x50000001
mov edx, dword [esp + 0xb8]
bt esi, edx
mov dl, byte [esp + 0x23]
jb 0x4a0b21
cmp edi, 0x2c
jne 0x4a05cd
jmp 0x4a0b21
cmp eax, 0x3a
jne 0x4a0642
mov dword [esp + 0x30], edx
mov dl, byte [ecx + 1]
jmp 0x4a05cd
cmp edi, 0x7b
je 0x4a0b21
cmp edi, 0x7d
je 0x4a0b21
movzx edx, dl
cmp edx, 0xe1
jg 0x4a05ee
mov edi, dword [esp + 0x1c]
cmp edx, 0xc2
jne 0x4a0618
cmp byte [ecx + 2], 0x85
mov esi, dword [esp + 0x18]
jmp 0x4a0638
cmp edx, 0xe2
mov esi, dword [esp + 0x18]
mov edi, dword [esp + 0x1c]
mov edx, dword [esp + 0x30]
jne 0x4a0642
cmp byte [ecx + 2], 0x80
jne 0x4a0642
mov cl, byte [ecx + 3]
and cl, 0xfe
cmp cl, 0xa8
jne 0x4a0642
jmp 0x4a0a41
mov esi, dword [esp + 0x18]
lea ecx, [edx - 9]
cmp ecx, 0x17
ja 0x4a0636
mov edi, 0x800013
bt edi, ecx
mov edi, dword [esp + 0x1c]
jb 0x4a0a41
test edx, edx
mov edx, dword [esp + 0x30]
je 0x4a0a41
test edx, edx
je 0x4a0679
cmp eax, 0x5c
jle 0x4a0667
cmp eax, 0x5d
je 0x4a0a41
cmp eax, 0x7b
je 0x4a0a41
cmp eax, 0x7d
jne 0x4a0679
jmp 0x4a0a41
cmp eax, 0x2c
je 0x4a0a41
cmp eax, 0x5b
je 0x4a0a41
test byte [esp + 0x14], 1
jne 0x4a06c4
cmp edi, dword [esp + 0x34]
je 0x4a06bb
lea eax, [esp + 0x44]
lea ecx, [esp + 0x24]
lea edx, [esp + 0x2c]
push eax
lea eax, [esp + 0x40]
push eax
lea eax, [esp + 0x30]
push eax
call fcn.004a7d28
add esp, 0xc
mov dword [esp + 0x44], edi
push dword [esp + 0xbc]
push 0
push edi
call sub.msvcrt.dll_memset
add esp, 0xc
mov dword [esp + 0x34], edi
jmp 0x4a0829
mov esi, dword [esp + 0x54]
cmp byte [esi], 0xa
jne 0x4a071b
mov edi, dword [esp + 0x94]
cmp byte [edi], 0
je 0x4a079d
lea eax, [esp + 0x50]
lea ecx, [esp + 0x24]
lea edx, [esp + 0x2c]
push eax
lea eax, [esp + 0x4c]
push eax
lea eax, [esp + 0x30]
push eax
call fcn.004a7d28
add esp, 0xc
mov dword [esp + 0x50], edi
push dword [esp + 0x90]
push 0
push edi
call sub.msvcrt.dll_memset
add esp, 0xc
mov edi, dword [esp + 0x1c]
jmp 0x4a0807
lea esi, [esp + 0x2c]
lea eax, [esp + 0x6c]
lea ecx, [esp + 0x24]
mov edx, esi
push eax
lea eax, [esp + 0x68]
push eax
lea edi, [esp + 0x30]
push edi
call fcn.004a7d28
add esp, 0xc
lea eax, [esp + 0x50]
lea ecx, [esp + 0x24]
mov edx, esi
push eax
lea eax, [esp + 0x4c]
push eax
push edi
mov edi, dword [esp + 0x28]
call fcn.004a7d28
add esp, 0xc
mov eax, dword [esp + 0x54]
xor esi, esi
mov dword [esp + 0x6c], eax
push dword [esp + 0x98]
push esi
push eax
call sub.msvcrt.dll_memset
add esp, 0xc
mov eax, dword [esp + 0x94]
mov dword [esp + 0x50], eax
push dword [esp + 0x90]
mov dword [esp + 0x18], 0
push esi
push eax
call sub.msvcrt.dll_memset
add esp, 0xc
jmp 0x4a0825
mov esi, dword [esp + 0x2c]
mov edi, dword [esp + 0x28]
lea eax, [esi + 5]
cmp eax, edi
jb 0x4a07f5
mov eax, dword [esp + 0x24]
sub edi, eax
mov ecx, eax
mov dword [esp + 0x14], eax
mov eax, edi
lea edx, [edi + edi]
sar eax, 0x1f
shld eax, edi, 1
push eax
call fcn.0049d07c
add esp, 4
mov dword [esp + 0x30], eax
lea ecx, [eax + edi]
push edi
push 0
push ecx
call sub.msvcrt.dll_memset
add esp, 0xc
mov ecx, dword [esp + 0x30]
sub esi, dword [esp + 0x14]
add esi, ecx
lea eax, [ecx + edi*2]
mov dword [esp + 0x28], eax
mov dword [esp + 0x24], ecx
lea eax, [esi + 1]
mov edi, dword [esp + 0x1c]
mov dword [esp + 0x2c], eax
mov byte [esi], 0x20
mov esi, dword [esp + 0x54]
mov dword [esp + 0x6c], esi
push dword [esp + 0x98]
push 0
push esi
call sub.msvcrt.dll_memset
add esp, 0xc
mov dword [esp + 0x14], 0
mov esi, dword [esp + 0x18]
mov ecx, ebx
lea edx, [esp + 0x24]
call fcn.004a7a8b
movsd xmm0, qword [esi + 0x10]
mov ecx, ebx
mov edx, 2
movsd qword [esp + 0x80], xmm0
movsd xmm0, qword [esi]
movsd xmm1, qword [esi + 8]
movsd qword [esp + 0x78], xmm1
movsd qword [esp + 0x70], xmm0
push 0
call fcn.004a37f5
add esp, 4
test al, al
jne 0x4a04e2
jmp 0x4a0b87
mov ecx, ebx
call fcn.004a3f4d
xor edx, edx
mov ecx, ebx
inc edx
push 0
call fcn.004a37f5
add esp, 4
test al, al
je 0x4a0b87
mov eax, dword [ebx + 0x70]
mov dl, byte [eax]
movzx ecx, dl
cmp ecx, 0x1f
jg 0x4a08b4
cmp ecx, 9
je 0x4a08d8
cmp ecx, 0xa
je 0x4a0907
cmp ecx, 0xd
je 0x4a0907
jmp 0x4a09e0
cmp ecx, 0x20
je 0x4a08d8
cmp ecx, 0xe2
je 0x4a08f0
cmp ecx, 0xc2
jne 0x4a09e0
cmp byte [eax + 1], 0x85
je 0x4a0907
jmp 0x4a09e0
test byte [esp + 0x14], 1
jne 0x4a0967
mov ecx, ebx
lea edx, [esp + 0x3c]
call fcn.004a7a8b
jmp 0x4a087c
cmp byte [eax + 1], 0x80
jne 0x4a09e0
mov al, byte [eax + 2]
and al, 0xfe
cmp al, 0xa8
jne 0x4a09e0
mov ecx, ebx
mov edx, 2
push 0
call fcn.004a37f5
add esp, 4
test al, al
je 0x4a0b87
test byte [esp + 0x14], 1
je 0x4a0937
mov ecx, ebx
lea edx, [esp + 0x48]
call fcn.004a7b83
jmp 0x4a087c
mov eax, dword [esp + 0x3c]
mov ecx, dword [esp + 0x40]
sub ecx, eax
mov dword [esp + 0x44], eax
push ecx
push 0
push eax
call sub.msvcrt.dll_memset
add esp, 0xc
mov ecx, ebx
lea edx, [esp + 0x64]
call fcn.004a7b83
mov al, 1
mov dword [esp + 0x14], eax
jmp 0x4a087c
cmp dl, 9
jne 0x4a0875
mov eax, dword [esp + 0x8c]
cmp eax, dword [ebx + 0xb0]
jle 0x4a0875
jmp 0x4a0db1
cmp ecx, 0x2d
je 0x4a09ac
cmp ecx, 0x2e
jne 0x4a048f
cmp byte [eax + 1], 0x2e
jne 0x4a0498
cmp byte [eax + 2], 0x2e
jne 0x4a0498
jmp 0x4a09c0
cmp byte [eax + 1], 0x2d
jne 0x4a0498
cmp byte [eax + 2], 0x2d
jne 0x4a0498
movzx ecx, byte [eax + 3]
cmp ecx, 0xe1
jg 0x4a0a02
cmp ecx, 0xc2
jne 0x4a0a27
cmp byte [eax + 4], 0x85
jne 0x4a0498
jmp 0x4a0a41
cmp dword [ebx + 0xbc], 0
jne 0x4a045e
mov eax, dword [esp + 0x8c]
cmp eax, dword [ebx + 0xb0]
jle 0x4a045e
jmp 0x4a0a41
cmp ecx, 0xe2
jne 0x4a0498
cmp byte [eax + 4], 0x80
jne 0x4a0498
mov al, byte [eax + 5]
and al, 0xfe
cmp al, 0xa8
jne 0x4a0498
jmp 0x4a0a41
lea eax, [ecx - 9]
cmp eax, 0x17
ja 0x4a0a39
mov edx, 0x800013
bt edx, eax
jb 0x4a0a41
test ecx, ecx
jne 0x4a0498
movsd xmm1, qword [esp + 0xc8]
movsd xmm0, qword [esp + 0xd0]
movsd xmm3, qword [esp + 0xc0]
movsd xmm2, qword [esp + 0x70]
test byte [esp + 0x14], 1
movsd qword [esp + 0xa8], xmm1
movsd xmm1, qword [esp + 0x78]
movsd qword [esp + 0xb0], xmm0
movsd qword [esp + 0xa0], xmm3
movsd qword [esp + 0x100], xmm2
movsd qword [esp + 0x108], xmm1
movsd xmm1, qword [esp + 0x80]
movsd qword [esp + 0x110], xmm1
je 0x4a0ab5
mov byte [ebx + 0xec], 1
mov eax, dword [esp + 0x64]
mov esi, dword [esp + 0x24]
mov edi, dword [esp + 0x2c]
test eax, eax
je 0x4a0ad6
add eax, 0xfffffff8
push eax
push 0
push dword [0x4e4100]
call sub.kernel32.dll_HeapFree
mov eax, dword [esp + 0x48]
test eax, eax
je 0x4a0aef
add eax, 0xfffffff8
push eax
push 0
push dword [0x4e4100]
call sub.kernel32.dll_HeapFree
mov eax, dword [esp + 0x3c]
test eax, eax
je 0x4a0b08
add eax, 0xfffffff8
push eax
push 0
push dword [0x4e4100]
call sub.kernel32.dll_HeapFree
sub edi, esi
mov dword [esp + 0x14], esi
mov eax, edi
sar eax, 0x1f
mov dword [esp + 0x34], eax
mov eax, 0x4cc7d4
jmp 0x4a0bf0
mov esi, dword [esp + 0x18]
mov eax, str.found_unexpected_:
mov dword [ebx], 3
mov dword [ebx + 0x30], str.while_scanning_a_plain_scalar
mov ecx, dword [esp + 0x58]
movsd xmm0, qword [esp + 0xd0]
movsd qword [ecx + 0x10], xmm0
movsd xmm0, qword [esp + 0xc0]
movsd xmm1, qword [esp + 0xc8]
movsd qword [ecx + 8], xmm1
movsd qword [ecx], xmm0
mov dword [ebx + 4], eax
mov eax, dword [esp + 0x5c]
movsd xmm0, qword [esi + 0x10]
movsd qword [eax + 0x10], xmm0
movsd xmm0, qword [esi]
movsd xmm1, qword [esi + 8]
movsd qword [eax + 8], xmm1
movsd qword [eax], xmm0
mov eax, dword [esp + 0x24]
test eax, eax
je 0x4a0ba0
add eax, 0xfffffff8
push eax
push 0
push dword [0x4e4100]
call sub.kernel32.dll_HeapFree
mov eax, dword [esp + 0x64]
test eax, eax
je 0x4a0bb9
add eax, 0xfffffff8
push eax
push 0
push dword [0x4e4100]
call sub.kernel32.dll_HeapFree
mov eax, dword [esp + 0x48]
test eax, eax
je 0x4a0bd2
add eax, 0xfffffff8
push eax
push 0
push dword [0x4e4100]
call sub.kernel32.dll_HeapFree
mov eax, dword [esp + 0x3c]
test eax, eax
je 0x4a0beb
add eax, 0xfffffff8
push eax
push 0
push dword [0x4e4100]
call sub.kernel32.dll_HeapFree
mov eax, 0x4cd5ef
cmp byte [eax], 0
jne 0x4a0f5b
mov ecx, dword [esp + 0xc]
mov edx, dword [esp + 0x38]
mov esi, edi
mov eax, dword [ecx]
cmp eax, dword [edx]
jne 0x4a0c27
mov ecx, dword [esp + 0x60]
mov edx, dword [esp + 0x10]
push dword [esp + 0x38]
push dword [esp + 0x10]
call fcn.0049d0d6
mov ecx, dword [esp + 0x14]
add esp, 8
mov eax, dword [ecx]
mov edi, dword [esp + 0x14]
xor edx, edx
mov dword [eax], 0x15
mov dword [eax + 4], edx
mov dword [eax + 8], edi
mov edi, dword [esp + 0x34]
mov dword [eax + 0xc], edx
mov dword [eax + 0x10], esi
mov dword [eax + 0x14], edi
mov dword [eax + 0x18], 1
mov dword [eax + 0x1c], edx
mov edi, dword [esp + 0x18]
movsd xmm0, qword [esp + 0xb0]
movsd qword [eax + 0x30], xmm0
movsd xmm0, qword [esp + 0xa0]
movsd xmm1, qword [esp + 0xa8]
movsd qword [eax + 0x28], xmm1
movsd qword [eax + 0x20], xmm0
movsd xmm0, qword [esp + 0x100]
movsd xmm1, qword [esp + 0x108]
movsd qword [eax + 0x38], xmm0
movsd qword [eax + 0x40], xmm1
movsd xmm0, qword [esp + 0x110]
movsd qword [eax + 0x48], xmm0
add dword [ecx], 0x50
mov eax, dword [esp + 0x10]
jmp 0x49fb28
mov eax, str.found_a_tab_character_that_violates_indentation
jmp 0x4a0b2a
test al, al
mov ecx, dword [esp + 0xc]
mov eax, dword [esp + 0x10]
jne 0x49fb28
jmp 0x4a0f5b
mov al, 1
mov byte [ebx + 0xd8], 1
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret
mov dword [ebx], 3
mov dword [ebx + 0x30], str.while_scanning_for_the_next_token
mov eax, dword [esp + 0x58]
movsd xmm0, qword [edi + 0x10]
movsd qword [eax + 0x10], xmm0
movsd xmm0, qword [edi]
movsd xmm1, qword [edi + 8]
movsd qword [eax + 8], xmm1
movsd qword [eax], xmm0
mov dword [ebx + 4], str.found_character_that_cannot_start_any_token
mov eax, dword [esp + 0x5c]
movsd xmm0, qword [edi + 0x10]
movsd qword [eax + 0x10], xmm0
movsd xmm0, qword [edi]
movsd xmm1, qword [edi + 8]
movsd qword [eax + 8], xmm1
movsd qword [eax], xmm0
xor eax, eax
jmp 0x4a0eff
call fcn.0049cd50
ud2