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

Disassembly:
push 0xffffffffffffffff
push 0x5340c7
mov eax, dword fs:[0]
push eax
sub esp, 0x110
mov eax, dword [0x55eb68]
xor eax, esp
mov dword [esp + 0x10c], eax
push ebx
push ebp
push esi
push edi
mov eax, dword [0x55eb68]
xor eax, esp
push eax
lea eax, [esp + 0x124]
mov dword fs:[0], eax
mov esi, ecx
inc dword [esi + 0x4c]
mov edi, dword [esi + 0x4c]
mov ebp, dword [esi + 4]
movzx ecx, byte [edi]
mov eax, dword [ebp]
movzx eax, byte [ecx + eax + 4]
xor bl, bl
add eax, 0xffffffef
mov byte [esp + 0x15], bl
cmp eax, 0x2a
ja case.0x5128ca.26
movzx edx, byte [eax + 0x512fbc]
jmp dword [edx*4 + 0x512f68]
mov bl, 1
jmp case.0x5128ca.22
mov ecx, esi
call fcn.005112f0
jmp 0x512f3e
push 8
inc edi
push 9
mov ecx, esi
mov dword [esi + 0x4c], edi
call fcn.00504bc0
jmp 0x512f3c
push 8
inc edi
push 0xa
mov ecx, esi
mov dword [esi + 0x4c], edi
call fcn.00504bc0
jmp 0x512f3c
push 8
inc edi
push 0xb
mov ecx, esi
mov dword [esi + 0x4c], edi
call fcn.00504bc0
jmp 0x512f3c
push 8
inc edi
push 0xc
mov ecx, esi
mov dword [esi + 0x4c], edi
call fcn.00504bc0
jmp 0x512f3c
push 8
inc edi
push 7
mov ecx, esi
mov dword [esi + 0x4c], edi
call fcn.00504bc0
jmp 0x512f3c
push 8
inc edi
push 8
mov ecx, esi
mov dword [esi + 0x4c], edi
call fcn.00504bc0
jmp 0x512f3c
push 8
inc edi
push 0x14
mov ecx, esi
mov dword [esi + 0x4c], edi
call fcn.00504bc0
jmp 0x512f3c
mov ecx, esi
call fcn.005082a0
jmp 0x512f3e
mov ecx, esi
call fcn.00504c60
jmp 0x512f3e
push 8
inc edi
push 0x13
mov ecx, esi
mov dword [esi + 0x4c], edi
call fcn.00504bc0
jmp 0x512f3c
push 8
inc edi
push 0x15
mov ecx, esi
mov dword [esi + 0x4c], edi
call fcn.00504bc0
jmp 0x512f3c
mov bl, 1
mov byte [esp + 0x15], bl
lea eax, [edi + 1]
mov edi, dword [esi + 0x48]
mov dword [esi + 0x4c], eax
cmp eax, edi
jne 0x512a0a
push str.Incomplete_property_escape_found.
lea ecx, [esp + 0x108]
call fcn.00405a30
mov ecx, dword [esi + 0x4c]
sub ecx, dword [esi + 0x44]
lea eax, [esp + 0x104]
push eax
push ecx
push 5
mov ecx, esi
mov dword [esp + 0x138], 1
call fcn.00507760
lea ecx, [esp + 0x104]
call fcn.00406260
xor al, al
jmp 0x512f3e
movzx edx, byte [eax]
mov ecx, dword [ebp]
cmp byte [edx + ecx + 4], 0xf
jne 0x512a8c
mov ecx, dword [esi + 0x4c]
movzx ebx, byte [ecx]
mov edx, dword [ebp]
cmp byte [ebx + edx + 4], 0x10
je 0x512a30
inc ecx
mov dword [esi + 0x4c], ecx
cmp ecx, dword [esi + 0x48]
jne 0x512a17
mov edx, dword [esi + 0x4c]
cmp edx, edi
jne 0x512a75
push str.Closing__missing_from_property_escape_sequence.
lea ecx, [esp + 0x60]
call fcn.00405a30
mov eax, dword [esi + 0x4c]
sub eax, dword [esi + 0x44]
lea edx, [esp + 0x5c]
push edx
push eax
push 5
mov ecx, esi
mov dword [esp + 0x138], 2
call fcn.00507760
lea ecx, [esp + 0x5c]
call fcn.00406260
xor al, al
jmp 0x512f3e
lea ecx, [edx + 1]
inc eax
push edx
mov dword [esi + 0x4c], ecx
mov ecx, dword [ebp]
push eax
call fcn.00507ab0
mov bl, byte [esp + 0x15]
jmp 0x512a99
lea edx, [eax + 1]
push edx
push eax
call fcn.00507ab0
inc dword [esi + 0x4c]
mov edi, eax
test edi, edi
je 0x512ae5
lea ecx, [esp + 0x1c]
call fcn.00509ae0
mov dword [esp + 0x12c], 3
test bl, bl
je 0x512abc
mov byte [esp + 0x3c], 1
or dword [esp + 0x40], edi
lea edx, [esp + 0x1c]
push edx
mov ecx, esi
mov byte [esp + 0x4c], 0
call fcn.0050ff40
test eax, eax
jne 0x512f12
mov eax, dword [esi + 0x4c]
sub eax, dword [esi + 0x44]
push eax
jmp 0x512ef9
push str.Escape_sequence_was_neither_a_valid_property_nor_a_valid_character_class_name.
lea ecx, [esp + 0xec]
call fcn.00405a30
mov edx, dword [esi + 0x4c]
sub edx, dword [esi + 0x44]
lea ecx, [esp + 0xe8]
push ecx
push edx
push 4
mov ecx, esi
mov dword [esp + 0x138], 4
call fcn.00507760
lea ecx, [esp + 0xe8]
call fcn.00406260
xor al, al
jmp 0x512f3e
mov eax, dword [esi]
test dword [eax + 0x18], 0x203
jne case.0x5128ca.22
push 0x10
push 0
mov ecx, esi
call fcn.00504bc0
mov dword [eax + 8], 0xfffffffb
mov ecx, dword [esi]
mov edx, dword [ecx + 0x18]
shr edx, 0x14
and dl, 1
mov byte [eax + 0xc], dl
mov eax, dword [esi]
mov ecx, dword [eax + 0x13c]
mov edx, dword [eax + 0x140]
sub edx, ecx
add edx, 3
and edx, 0xfffffffc
add edx, ecx
mov dword [eax + 0x140], edx
inc dword [esi + 0x4c]
jmp 0x512f3c
mov eax, dword [esi]
test dword [eax + 0x18], 0x203
jne case.0x5128ca.22
mov ebp, dword [esi + 0x44]
mov ebx, dword [esi + 0x48]
mov eax, str.____r_n___n_v_f
mov dword [esi + 0x4c], eax
mov dword [esi + 0x44], eax
lea edx, [eax + 1]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x512ba4
sub eax, edx
lea ecx, [eax + str.____r_n___n_v_f]
mov dword [esi + 0x48], ecx
mov ecx, esi
call fcn.00503230
inc edi
mov dword [esi + 0x4c], edi
mov dword [esi + 0x48], ebx
mov dword [esi + 0x44], ebp
jmp 0x512f3e
mov eax, dword [esi]
test dword [eax + 0x18], 0x203
jne case.0x5128ca.22
mov ebx, dword [esi + 0x48]
lea eax, [edi + 1]
mov byte [esp + 0x16], 0
mov dword [esi + 0x4c], eax
cmp eax, ebx
jne 0x512c36
mov edx, dword [str.Incomplete_g_escape_found.]
push edx
lea ecx, [esp + 0xb4]
call fcn.00405a30
mov ecx, dword [esi + 0x4c]
sub ecx, dword [esi + 0x44]
lea eax, [esp + 0xb0]
push eax
push ecx
push 5
mov ecx, esi
mov dword [esp + 0x138], 5
call fcn.00507760
lea ecx, [esp + 0xb0]
call fcn.00406260
xor al, al
jmp 0x512f3e
movzx edx, byte [eax]
mov ecx, dword [ebp]
mov cl, byte [edx + ecx + 4]
mov byte [esp + 0x15], 0
cmp cl, 0xf
je 0x512c54
cmp cl, 0x14
je 0x512c54
cmp cl, 0x19
jne 0x512cbd
inc eax
mov dword [esi + 0x4c], eax
cmp eax, ebx
jne 0x512c9b
mov eax, dword [str.Incomplete_g_escape_found.]
push eax
lea ecx, [esp + 0x7c]
call fcn.00405a30
mov edx, dword [esi + 0x4c]
sub edx, dword [esi + 0x44]
lea ecx, [esp + 0x78]
push ecx
push edx
push 5
mov ecx, esi
mov dword [esp + 0x138], 6
call fcn.00507760
lea ecx, [esp + 0x78]
call fcn.00406260
xor al, al
jmp 0x512f3e
mov byte [esp + 0x16], 1
cmp cl, 0xf
je 0x512cb8
cmp cl, 0x14
setne al
lea eax, [eax*4 + 0x15]
mov byte [esp + 0x15], al
jmp 0x512cbd
mov byte [esp + 0x15], 0x10
mov eax, dword [esi + 0x4c]
cmp byte [eax], 0x2d
sete cl
mov byte [esp + 0x17], cl
test cl, cl
je 0x512d1e
inc eax
mov dword [esi + 0x4c], eax
cmp eax, ebx
jne 0x512d1e
mov eax, dword [str.Incomplete_g_escape_found.]
push eax
lea ecx, [esp + 0x98]
call fcn.00405a30
mov edx, dword [esi + 0x4c]
sub edx, dword [esi + 0x44]
lea ecx, [esp + 0x94]
push ecx
push edx
push 5
mov ecx, esi
mov dword [esp + 0x138], 7
call fcn.00507760
lea ecx, [esp + 0x94]
call fcn.00406260
xor al, al
jmp 0x512f3e
mov eax, dword [esi + 0x4c]
push ebp
push 0xa
lea ecx, [esp + 0x20]
push ebx
push ecx
mov dword [esp + 0x28], eax
call fcn.00411650
mov edi, eax
add esp, 0x10
test edi, edi
jns 0x512d79
mov dl, byte [esp + 0x15]
test dl, dl
je 0x512d79
mov eax, dword [esi + 0x4c]
mov edi, eax
cmp eax, ebx
je 0x512d68
lea ecx, [ecx]
mov eax, dword [esi + 0x4c]
movzx ebx, byte [eax]
mov ecx, dword [ebp]
cmp byte [ebx + ecx + 4], dl
je 0x512d68
inc eax
mov dword [esi + 0x4c], eax
cmp eax, dword [esi + 0x48]
jne 0x512d50
mov ebp, dword [esi + 0x4c]
push ebp
push edi
call fcn.004117d0
add esp, 8
mov edi, eax
jmp 0x512d7d
mov ebp, dword [esp + 0x18]
cmp byte [esp + 0x17], 0
je 0x512d8c
mov ecx, dword [esi + 0x50]
sub ecx, edi
lea edi, [ecx + 1]
test edi, edi
jle 0x512d9f
lea ecx, [edi - 1]
mov edx, 1
shl edx, cl
test dword [esi + 0x18], edx
jne 0x512dd8
cmp edi, 0x2710
jle 0x512e6e
mov ebx, dword [esi]
push edi
mov ecx, ebx
call fcn.00506060
test eax, eax
jle 0x512e6e
push edi
mov ecx, ebx
call fcn.00506060
lea ecx, [eax - 1]
mov eax, 1
shl eax, cl
test dword [esi + 0x18], eax
je 0x512e6e
push 0x10
push 0xd
mov ecx, esi
mov dword [esi + 0x4c], ebp
call fcn.00504bc0
mov dword [eax + 8], edi
mov ecx, dword [esi]
mov edx, dword [ecx + 0x18]
shr edx, 0x14
and dl, 1
cmp byte [esp + 0x16], 0
mov byte [eax + 0xc], dl
mov dword [esi + 0x4c], ebp
je 0x512f3c
cmp ebp, dword [esi + 0x48]
je 0x512e26
mov eax, dword [esi + 4]
movzx ecx, byte [ebp]
mov eax, dword [eax]
mov dl, byte [esp + 0x15]
cmp byte [ecx + eax + 4], dl
jne 0x512e26
inc ebp
mov dword [esi + 0x4c], ebp
jmp 0x512f3c
mov eax, dword [str.Incomplete_g_escape_found.]
push eax
lea ecx, [esp + 0xd0]
call fcn.00405a30
mov edx, dword [esi + 0x4c]
sub edx, dword [esi + 0x44]
lea ecx, [esp + 0xcc]
push ecx
push edx
push 5
mov ecx, esi
mov dword [esp + 0x138], 8
call fcn.00507760
lea ecx, [esp + 0xcc]
call fcn.00406260
xor al, al
jmp 0x512f3e
mov eax, dword [esi + 0x4c]
sub eax, dword [esi + 0x44]
mov ecx, esi
push eax
push 6
call fcn.00508f90
xor al, al
jmp 0x512f3e
mov ecx, dword [esi]
test dword [ecx + 0x18], 0x203
jne case.0x5128ca.26
mov ecx, dword [ebp]
lea eax, [edi + 1]
push eax
push edi
call fcn.00507ab0
mov edi, eax
test edi, edi
je 0x512f1d
lea ecx, [esp + 0x1c]
call fcn.00509ae0
mov dword [esp + 0x12c], 0
test bl, bl
je 0x512ec4
mov byte [esp + 0x3c], 1
or dword [esp + 0x40], edi
cmp byte [esp + 0x3d], 0
mov byte [esp + 0x48], 0
push 0
mov ecx, esi
je 0x512ee4
lea edx, [esp + 0x20]
push edx
call fcn.0050d400
jmp 0x512eee
lea eax, [esp + 0x20]
push eax
call fcn.0050cac0
test eax, eax
jne 0x512f0f
mov ecx, dword [esi + 0x4c]
sub ecx, dword [esi + 0x44]
push ecx
push 4
mov ecx, esi
call fcn.00508f90
lea ecx, [esp + 0x1c]
call fcn.00509a10
xor al, al
jmp 0x512f3e
inc dword [esi + 0x4c]
lea ecx, [esp + 0x1c]
call fcn.00509a10
jmp 0x512f3c
mov ecx, esi
call fcn.0050f810
movzx edx, al
push edx
jmp 0x512f35
mov ecx, esi
call fcn.0050f810
movzx eax, al
push eax
mov ecx, esi
call fcn.00504ca0
mov al, 1
mov ecx, dword [esp + 0x124]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebp
pop ebx
mov ecx, dword [esp + 0x10c]
xor ecx, esp
call fcn.00516d3a
add esp, 0x11c
ret