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

Disassembly:
push 0xffffffffffffffff
push 0x4a2677
mov eax, dword fs:[0]
push eax
sub esp, 0xbc
push ebx
push ebp
push esi
push edi
mov eax, dword [0x4c5cd8]
xor eax, esp
push eax
lea eax, [esp + 0xd0]
mov dword fs:[0], eax
mov esi, ecx
inc dword [esi + 0x74]
mov eax, dword [esi + 0x74]
mov ebx, dword [esi + 0x70]
lea edi, [esi + 0x74]
cmp eax, ebx
jne 0x4779ef
mov ecx, dword [esi + 4]
dec eax
mov dword [edi], eax
movzx eax, byte [eax]
mov edx, dword [ecx]
cmp byte [eax + edx + 4], 1
je 0x4779e4
dec dword [edi]
mov eax, dword [edi]
movzx ecx, byte [eax]
mov edx, dword [esi + 4]
mov eax, dword [edx]
cmp byte [ecx + eax + 4], 1
jne 0x4779d1
mov ecx, dword [edi]
sub ecx, dword [esi + 0x6c]
push ecx
jmp 0x478b3f
mov edx, dword [esi + 4]
movzx ecx, byte [eax]
mov ebp, dword [edx]
mov cl, byte [ecx + ebp + 4]
cmp cl, 0xd
jne 0x477a1c
cmp eax, ebx
je 0x477a15
mov cl, byte [eax]
inc eax
mov dword [edi], eax
mov esi, dword [edx]
movzx ecx, cl
cmp byte [ecx + esi + 4], 2
jne 0x477a00
mov al, 1
jmp 0x478b4a
xor ebx, ebx
push 0x10
push ebx
mov ecx, esi
mov dword [esp + 0x28], ebx
call fcn.00469620
mov edx, dword [esi]
mov ebp, eax
mov eax, dword [edx + 0x20]
shr eax, 0x14
and al, 1
mov byte [ebp + 0xc], al
mov eax, dword [esi]
mov edx, dword [eax + 0x144]
mov ecx, ebp
sub ecx, edx
mov dword [esp + 0x2c], ecx
mov ecx, dword [esi + 0x88]
mov dword [esp + 0x5c], ecx
mov ecx, edx
mov edx, dword [eax + 0x148]
sub edx, ecx
add edx, 3
and edx, 0xfffffffc
add edx, ecx
mov dword [eax + 0x148], edx
mov eax, dword [esi]
mov ecx, dword [eax + 0x148]
sub ecx, dword [eax + 0x144]
mov dl, byte [esi + 0x8c]
mov dword [esi + 0x88], ecx
mov dword [esp + 0x34], ecx
mov ecx, dword [eax + 0x20]
mov dword [esp + 0x30], ecx
mov ecx, dword [esi + 0x7c]
mov byte [esi + 0x8c], bl
mov ebx, dword [edi]
mov byte [esp + 0x1e], dl
mov edx, dword [esi + 0x80]
mov dword [esp + 0x58], ecx
mov ecx, dword [esi + 0x78]
mov dword [esi + 0x80], ecx
mov ecx, dword [esi + 4]
mov dword [esi + 0x7c], 0xffffffff
mov bl, byte [ebx]
mov dword [esp + 0x54], edx
mov edx, dword [ecx]
mov byte [esp + 0x17], bl
movzx ebx, bl
movzx edx, byte [ebx + edx + 4]
dec edx
mov byte [esp + 0x1f], 1
cmp edx, 0x34
ja case.0x477ae8.3
movzx edx, byte [edx + 0x478b98]
jmp dword [edx*4 + 0x478b64]
mov eax, dword [esi + 0x78]
mov dword [esi + 0x7c], eax
xor ebx, ebx
mov dword [ebp + 8], ebx
inc dword [edi]
mov dword [esp + 0x18], ebx
jmp 0x47876f
mov eax, dword [esi + 0x70]
push 0xa
push eax
push edi
call fcn.0046a160
mov ebx, eax
test ebx, ebx
jl 0x477b2c
mov ecx, dword [edi]
mov eax, dword [esi + 4]
movzx edx, byte [ecx]
mov eax, dword [eax]
cmp byte [edx + eax + 4], 2
je 0x4786c6
dec dword [edi]
mov eax, dword [edi]
mov ecx, dword [esi + 4]
movzx ebx, byte [eax]
mov ecx, dword [ecx]
mov edx, 1
cmp byte [ebx + ecx + 4], dl
je 0x477b57
sub eax, edx
mov dword [edi], eax
mov ecx, dword [esi + 4]
mov ecx, dword [ecx]
mov ebx, eax
movzx ebx, byte [ebx]
cmp byte [ebx + ecx + 4], dl
jne 0x477b43
push str.The_recursive_sub_expression_refers_to_an_invalid_marking_group__or_is_unterminated.
lea ecx, [esp + 0x80]
call fcn.004020b0
mov ecx, dword [edi]
sub ecx, dword [esi + 0x6c]
lea eax, [esp + 0x7c]
push eax
push ecx
push 0x14
mov ecx, esi
mov dword [esp + 0xe4], 0
call fcn.0046da20
lea ecx, [esp + 0x7c]
mov dword [esp + 0xd8], 0xffffffff
call fcn.00402960
jmp 0x478b48
mov eax, dword [edi]
mov edx, dword [esi + 0x70]
push 0xa
push edx
inc eax
push edi
mov dword [edi], eax
call fcn.0046a160
mov ebx, eax
test ebx, ebx
jle 0x477bd0
mov ecx, dword [edi]
mov eax, dword [esi + 4]
movzx edx, byte [ecx]
mov eax, dword [eax]
cmp byte [edx + eax + 4], 2
jne 0x477bd0
add ebx, dword [esi + 0x78]
jmp 0x4786c6
dec dword [edi]
mov eax, dword [edi]
mov ecx, dword [esi + 4]
movzx edx, byte [eax]
mov ecx, dword [ecx]
mov ebx, 1
cmp byte [edx + ecx + 4], bl
je 0x477bfb
sub eax, ebx
mov dword [edi], eax
mov ecx, dword [esi + 4]
mov ecx, dword [ecx]
mov edx, eax
movzx edx, byte [edx]
cmp byte [edx + ecx + 4], bl
jne 0x477be7
push str.An_invalid_or_unterminated_recursive_sub_expression.
lea ecx, [esp + 0x64]
call fcn.004020b0
mov ecx, dword [edi]
sub ecx, dword [esi + 0x6c]
lea eax, [esp + 0x60]
push eax
push ecx
push 0x14
mov ecx, esi
mov dword [esp + 0xe4], ebx
call fcn.0046da20
lea ecx, [esp + 0x60]
mov dword [esp + 0xd8], 0xffffffff
call fcn.00402960
jmp 0x478b48
mov eax, dword [edi]
mov edx, dword [esi + 0x70]
push 0xa
push edx
inc eax
push edi
mov dword [edi], eax
call fcn.0046a160
test eax, eax
jg 0x477c9b
dec dword [edi]
mov ecx, esi
call fcn.0046f8e0
mov ebx, eax
mov eax, dword [edi]
cmp eax, dword [esi + 0x70]
jne 0x4786ee
mov ecx, dword [esi + 4]
dec eax
mov dword [edi], eax
movzx edx, byte [eax]
mov ebx, dword [ecx]
mov ecx, 1
cmp byte [edx + ebx + 4], cl
je 0x478b3b
sub eax, ecx
mov dword [edi], eax
mov ebx, dword [esi + 4]
mov ebx, dword [ebx]
mov edx, eax
movzx edx, byte [edx]
cmp byte [edx + ebx + 4], cl
jne 0x477c82
jmp 0x478b3b
mov ebx, dword [esi + 0x78]
sub ebx, eax
inc ebx
test ebx, ebx
jg 0x4786c6
dec dword [edi]
mov eax, dword [edi]
mov ecx, dword [esi + 4]
movzx edx, byte [eax]
mov ecx, dword [ecx]
cmp byte [edx + ecx + 4], 1
je 0x477cd4
lea esp, [esp]
dec eax
mov dword [edi], eax
mov ecx, dword [esi + 4]
mov ecx, dword [ecx]
mov edx, eax
movzx edx, byte [edx]
cmp byte [edx + ecx + 4], 1
jne 0x477cc0
push str.An_invalid_or_unterminated_recursive_sub_expression.
lea ecx, [esp + 0x9c]
call fcn.004020b0
mov ecx, dword [edi]
sub ecx, dword [esi + 0x6c]
lea eax, [esp + 0x98]
push eax
push ecx
push 0x14
mov ecx, esi
mov dword [esp + 0xe4], 2
call fcn.0046da20
lea ecx, [esp + 0x98]
mov dword [esp + 0xd8], 0xffffffff
call fcn.00402960
jmp 0x478b48
or ebx, 0xffffffff
push 0xc
mov dword [ebp + 8], ebx
inc dword [edi]
push 0x10
mov ecx, esi
mov dword [esp + 0x20], ebx
call fcn.00469620
mov ecx, dword [esi]
sub eax, dword [ecx + 0x144]
mov edx, dword [ecx + 0x148]
mov dword [esp + 0x20], eax
mov eax, dword [ecx + 0x144]
sub edx, eax
add edx, 3
and edx, 0xfffffffc
add edx, eax
mov dword [ecx + 0x148], edx
mov eax, dword [esi]
mov ecx, dword [eax + 0x148]
add eax, 0x140
sub ecx, dword [eax + 4]
mov dword [esi + 0x88], ecx
jmp 0x47876f
mov ebx, 0xfffffffe
jmp 0x477d26
mov edx, dword [edi]
inc edx
mov dword [edi], edx
cmp edx, dword [esi + 0x70]
jne 0x477db9
lea eax, [edx - 1]
mov dword [edi], eax
movzx edx, byte [eax]
mov ecx, dword [ecx]
mov al, 1
cmp byte [edx + ecx + 4], al
je 0x477db2
dec dword [edi]
mov edx, dword [edi]
movzx ecx, byte [edx]
mov edx, dword [esi + 4]
mov edx, dword [edx]
cmp byte [ecx + edx + 4], al
jne 0x477da0
mov eax, dword [edi]
jmp 0x478b3b
movzx ebx, byte [edx]
mov ecx, dword [ecx]
mov cl, byte [ebx + ecx + 4]
cmp cl, 0x35
jne 0x477dce
mov ebx, 0xfffffffe
jmp 0x477dd6
cmp cl, 0x25
jne 0x477e26
or ebx, 0xffffffff
push 0xc
mov dword [ebp + 8], ebx
inc dword [edi]
push 0x10
mov ecx, esi
mov dword [esp + 0x20], ebx
call fcn.00469620
mov ecx, dword [esi]
sub eax, dword [ecx + 0x144]
push 0x10
push 0x1a
mov ecx, esi
mov dword [esp + 0x28], eax
call fcn.00469620
mov eax, dword [esi]
mov ecx, dword [eax + 0x144]
mov edx, dword [eax + 0x148]
add eax, 0x140
sub edx, ecx
add edx, 3
and edx, 0xfffffffc
add edx, ecx
mov dword [eax + 8], edx
jmp 0x477d62
dec edx
mov byte [esp + 0x17], 0x3e
mov dword [edi], edx
jmp 0x478471
mov ebx, 0xfffffffd
jmp 0x477d26
mov ebx, 0xfffffffc
mov dword [ebp + 8], ebx
inc dword [edi]
mov ecx, dword [edi]
mov eax, dword [esi + 0x70]
mov dword [esp + 0x18], ebx
cmp ecx, eax
jne 0x477e82
lea eax, [ecx - 1]
mov dword [edi], eax
movzx edx, byte [eax]
mov eax, dword [esi + 4]
mov ecx, dword [eax]
cmp byte [edx + ecx + 4], 1
je 0x477e7b
dec dword [edi]
mov edx, dword [edi]
movzx eax, byte [edx]
mov ecx, dword [esi + 4]
mov edx, dword [ecx]
cmp byte [eax + edx + 4], 1
jne 0x477e68
mov eax, dword [edi]
jmp 0x478b3b
mov ecx, dword [esi + 4]
push 0xa
push eax
push edi
call fcn.0046a160
mov ecx, dword [edi]
mov dl, byte [ecx]
mov ebp, eax
cmp dl, 0x52
jne 0x477fee
mov edx, dword [esi + 0x70]
inc ecx
mov dword [edi], ecx
cmp ecx, edx
jne 0x477ede
mov edx, dword [esi + 4]
lea eax, [ecx - 1]
mov dword [edi], eax
movzx ecx, byte [eax]
mov eax, dword [edx]
cmp byte [ecx + eax + 4], 1
je 0x477ed3
jmp 0x477ec0
dec dword [edi]
mov ecx, dword [edi]
movzx edx, byte [ecx]
mov eax, dword [esi + 4]
mov ecx, dword [eax]
cmp byte [edx + ecx + 4], 1
jne 0x477ec0
mov edx, dword [edi]
sub edx, dword [esi + 0x6c]
push edx
jmp 0x478b3f
cmp byte [ecx], 0x26
jne 0x477f55
inc ecx
mov dword [esp + 0x24], ecx
mov dword [edi], ecx
cmp ecx, edx
je 0x477f0d
mov edi, edi
mov eax, dword [esi + 4]
mov ecx, dword [eax]
mov eax, dword [edi]
movzx ebp, byte [eax]
cmp byte [ecx + ebp + 4], 2
je 0x477f09
inc eax
mov dword [edi], eax
cmp eax, dword [esi + 0x70]
jne 0x477ef0
mov ecx, dword [esp + 0x24]
mov eax, dword [edi]
cmp eax, edx
jne 0x477f49
mov edx, dword [esi + 4]
dec eax
mov dword [edi], eax
movzx ecx, byte [eax]
mov edx, dword [edx]
cmp byte [ecx + edx + 4], 1
je 0x478b3b
lea esp, [esp]
dec eax
mov dword [edi], eax
mov ecx, eax
movzx edx, byte [ecx]
mov ecx, dword [esi + 4]
mov ecx, dword [ecx]
cmp byte [edx + ecx + 4], 1
jne 0x477f30
jmp 0x478b3b
push eax
push ecx
call fcn.004684b0
add esp, 8
jmp 0x477f61
mov ecx, dword [esi + 4]
push 0xa
push edx
push edi
call fcn.0046a160
push 0x10
mov ebp, eax
push 0x1b
mov ecx, esi
neg ebp
call fcn.00469620
test ebp, ebp
jge 0x477f77
dec ebp
jmp 0x477f79
xor ebp, ebp
mov dword [eax + 8], ebp
mov eax, dword [edi]
mov ecx, dword [esi + 4]
movzx ebp, byte [eax]
mov edx, dword [ecx]
cmp byte [edx + ebp + 4], 2
je 0x477fb9
dec eax
mov dword [edi], eax
movzx edx, byte [eax]
mov ecx, dword [ecx]
cmp byte [edx + ecx + 4], 1
je 0x478b3b
dec eax
mov dword [edi], eax
mov edx, eax
movzx ecx, byte [edx]
mov edx, dword [esi + 4]
mov edx, dword [edx]
cmp byte [ecx + edx + 4], 1
jne 0x477fa0
jmp 0x478b3b
inc eax
mov dword [edi], eax
cmp eax, dword [esi + 0x70]
jne 0x47876f
dec eax
mov dword [edi], eax
movzx eax, byte [eax]
mov ecx, dword [ecx]
cmp byte [eax + ecx + 4], 1
je 0x477fe7
dec dword [edi]
mov edx, dword [edi]
movzx eax, byte [edx]
mov ecx, dword [esi + 4]
mov edx, dword [ecx]
cmp byte [eax + edx + 4], 1
jne 0x477fd4
mov eax, dword [edi]
jmp 0x478b3b
cmp dl, 0x27
je 0x4782c8
cmp dl, 0x3c
je 0x4782c8
cmp dl, 0x44
jne 0x4780ed
mov ebp, dword [esi + 0x70]
mov ecx, str.DEFINE
mov eax, dword [edi]
cmp eax, ebp
je 0x478026
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x478026
inc eax
inc ecx
mov dword [edi], eax
cmp byte [ecx], 0
jne 0x478011
mov eax, dword [edi]
cmp eax, ebp
je 0x4780be
cmp byte [ecx], 0
jne 0x4780be
push 0x10
push 0x1b
mov ecx, esi
call fcn.00469620
mov dword [eax + 8], 0x270f
mov eax, dword [edi]
mov ecx, dword [esi + 4]
movzx ebp, byte [eax]
mov edx, dword [ecx]
cmp byte [edx + ebp + 4], 2
je 0x478089
dec eax
mov dword [edi], eax
movzx edx, byte [eax]
mov ecx, dword [ecx]
cmp byte [edx + ecx + 4], 1
je 0x478b3b
nop
dec eax
mov dword [edi], eax
mov edx, eax
movzx ecx, byte [edx]
mov edx, dword [esi + 4]
mov edx, dword [edx]
cmp byte [ecx + edx + 4], 1
jne 0x478070
jmp 0x478b3b
inc eax
mov dword [edi], eax
cmp eax, dword [esi + 0x70]
jne 0x47876f
dec eax
mov dword [edi], eax
movzx eax, byte [eax]
mov ecx, dword [ecx]
cmp byte [eax + ecx + 4], 1
je 0x4780b7
dec dword [edi]
mov edx, dword [edi]
movzx eax, byte [edx]
mov ecx, dword [esi + 4]
mov edx, dword [ecx]
cmp byte [eax + edx + 4], 1
jne 0x4780a4
mov eax, dword [edi]
jmp 0x478b3b
mov edx, dword [esi + 4]
dec eax
mov dword [edi], eax
movzx ecx, byte [eax]
mov edx, dword [edx]
cmp byte [ecx + edx + 4], 1
je 0x478b3b
dec eax
mov dword [edi], eax
mov ecx, eax
movzx edx, byte [ecx]
mov ecx, dword [esi + 4]
mov ecx, dword [ecx]
cmp byte [edx + ecx + 4], 1
jne 0x4780d4
jmp 0x478b3b
test ebp, ebp
jle 0x47817a
push 0x10
push 0x1b
mov ecx, esi
call fcn.00469620
mov dword [eax + 8], ebp
mov eax, dword [edi]
mov ecx, dword [esi + 4]
movzx ebp, byte [eax]
mov edx, dword [ecx]
cmp byte [edx + ebp + 4], 2
je 0x478140
dec eax
mov dword [edi], eax
movzx edx, byte [eax]
mov ecx, dword [ecx]
cmp byte [edx + ecx + 4], 1
je 0x478b3b
dec eax
mov dword [edi], eax
mov edx, eax
movzx ecx, byte [edx]
mov edx, dword [esi + 4]
mov edx, dword [edx]
cmp byte [ecx + edx + 4], 1
jne 0x478127
jmp 0x478b3b
inc eax
mov dword [edi], eax
cmp eax, dword [esi + 0x70]
jne 0x47876f
dec eax
mov dword [edi], eax
movzx eax, byte [eax]
mov ecx, dword [ecx]
cmp byte [eax + ecx + 4], 1
je 0x478173
jmp 0x478160
dec dword [edi]
mov edx, dword [edi]
movzx eax, byte [edx]
mov ecx, dword [esi + 4]
mov edx, dword [ecx]
cmp byte [eax + edx + 4], 1
jne 0x478160
mov eax, dword [edi]
jmp 0x478b3b
mov eax, dword [esi + 4]
mov ebp, dword [eax]
movzx edx, dl
cmp byte [edx + ebp + 4], 8
je 0x4781b5
dec ecx
mov dword [edi], ecx
movzx edx, byte [ecx]
mov eax, dword [eax]
cmp byte [edx + eax + 4], 1
je 0x4781ac
dec ecx
mov dword [edi], ecx
mov edx, ecx
movzx eax, byte [edx]
mov edx, dword [esi + 4]
mov edx, dword [edx]
cmp byte [eax + edx + 4], 1
jne 0x478198
sub ecx, dword [esi + 0x6c]
push ecx
jmp 0x478b3f
inc ecx
mov dword [edi], ecx
cmp ecx, dword [esi + 0x70]
jne 0x4781ee
dec ecx
mov dword [edi], ecx
movzx ecx, byte [ecx]
mov edx, dword [eax]
cmp byte [ecx + edx + 4], 1
je 0x4781e3
lea esp, [esp]
dec dword [edi]
mov eax, dword [edi]
movzx ecx, byte [eax]
mov edx, dword [esi + 4]
mov eax, dword [edx]
cmp byte [ecx + eax + 4], 1
jne 0x4781d0
mov ecx, dword [edi]
sub ecx, dword [esi + 0x6c]
push ecx
jmp 0x478b3f
movzx edx, byte [ecx]
mov ebp, dword [eax]
cmp byte [edx + ebp + 4], 0x14
jne 0x47827d
inc ecx
mov dword [edi], ecx
cmp ecx, dword [esi + 0x70]
jne 0x478233
dec ecx
mov dword [edi], ecx
movzx edx, byte [ecx]
mov eax, dword [eax]
cmp byte [edx + eax + 4], 1
je 0x478228
dec dword [edi]
mov ecx, dword [edi]
movzx edx, byte [ecx]
mov eax, dword [esi + 4]
mov ecx, dword [eax]
cmp byte [edx + ecx + 4], 1
jne 0x478215
mov edx, dword [edi]
sub edx, dword [esi + 0x6c]
push edx
jmp 0x478b3f
movzx edx, byte [ecx]
mov ebp, dword [eax]
cmp byte [edx + ebp + 4], 0x25
je 0x478273
cmp byte [edx + ebp + 4], 0x35
je 0x478273
dec ecx
mov dword [edi], ecx
movzx ecx, byte [ecx]
mov edx, dword [eax]
cmp byte [ecx + edx + 4], 1
je 0x478268
dec dword [edi]
mov eax, dword [edi]
movzx ecx, byte [eax]
mov edx, dword [esi + 4]
mov eax, dword [edx]
cmp byte [ecx + eax + 4], 1
jne 0x478255
mov ecx, dword [edi]
sub ecx, dword [esi + 0x6c]
push ecx
jmp 0x478b3f
add ecx, 0xfffffffd
mov dword [edi], ecx
jmp 0x47876f
cmp byte [edx + ebp + 4], 0x25
je 0x4782be
cmp byte [edx + ebp + 4], 0x35
je 0x4782be
dec ecx
mov dword [edi], ecx
movzx edx, byte [ecx]
mov eax, dword [eax]
cmp byte [edx + eax + 4], 1
je 0x4782b3
lea ebx, [ebx]
dec dword [edi]
mov ecx, dword [edi]
movzx edx, byte [ecx]
mov eax, dword [esi + 4]
mov ecx, dword [eax]
cmp byte [edx + ecx + 4], 1
jne 0x4782a0
mov edx, dword [edi]
sub edx, dword [esi + 0x6c]
push edx
jmp 0x478b3f
add ecx, 0xfffffffe
mov dword [edi], ecx
jmp 0x47876f
mov edx, dword [esi + 0x70]
lea eax, [ecx + 1]
mov dword [edi], eax
mov ebx, eax
cmp eax, edx
je 0x4782ec
mov cl, byte [eax]
cmp cl, 0x3e
je 0x4782ec
cmp cl, 0x27
je 0x4782ec
inc eax
mov ecx, eax
mov dword [edi], eax
cmp ecx, dword [esi + 0x70]
jne 0x4782d6
mov eax, dword [edi]
cmp eax, edx
jne 0x478321
mov ecx, dword [esi + 4]
dec eax
mov dword [edi], eax
movzx edx, byte [eax]
mov ecx, dword [ecx]
cmp byte [edx + ecx + 4], 1
je 0x478b3b
dec eax
mov dword [edi], eax
mov edx, eax
movzx ecx, byte [edx]
mov edx, dword [esi + 4]
mov edx, dword [edx]
cmp byte [ecx + edx + 4], 1
jne 0x478308
jmp 0x478b3b
push eax
push ebx
call fcn.004684b0
add esp, 8
push 0x10
push 0x1b
mov ecx, esi
mov ebp, eax
call fcn.00469620
mov dword [eax + 8], ebp
mov eax, dword [edi]
mov cl, byte [eax]
cmp cl, 0x3e
je 0x478349
cmp cl, 0x27
jne 0x478353
mov ebp, dword [esi + 0x70]
inc eax
mov dword [edi], eax
cmp eax, ebp
jne 0x4783c0
dec dword [edi]
mov eax, dword [edi]
mov ecx, dword [esi + 4]
movzx edx, byte [eax]
mov ecx, dword [ecx]
cmp byte [edx + ecx + 4], 1
je 0x47837a
dec eax
mov dword [edi], eax
mov ecx, dword [esi + 4]
mov ecx, dword [ecx]
mov edx, eax
movzx edx, byte [edx]
cmp byte [edx + ecx + 4], 1
jne 0x478366
push str.Unterminated_named_capture.
lea ecx, [esp + 0x3c]
call fcn.004020b0
mov dword [esp + 0xd8], 3
mov ecx, dword [edi]
sub ecx, dword [esi + 0x6c]
lea eax, [esp + 0x38]
push eax
push ecx
push 0x14
mov ecx, esi
call fcn.0046da20
lea ecx, [esp + 0x38]
mov dword [esp + 0xd8], 0xffffffff
call fcn.00402960
jmp 0x478b48
mov ecx, dword [esi + 4]
movzx ebx, byte [eax]
mov edx, dword [ecx]
cmp byte [ebx + edx + 4], 2
je 0x4783fe
dec eax
mov dword [edi], eax
movzx edx, byte [eax]
mov eax, dword [ecx]
cmp byte [edx + eax + 4], 1
je 0x4783f3
mov edi, edi
dec dword [edi]
mov ecx, dword [edi]
movzx edx, byte [ecx]
mov eax, dword [esi + 4]
mov ecx, dword [eax]
cmp byte [edx + ecx + 4], 1
jne 0x4783e0
mov edx, dword [edi]
sub edx, dword [esi + 0x6c]
push edx
jmp 0x478b3f
inc eax
mov dword [edi], eax
cmp eax, ebp
jne 0x47876b
dec eax
mov dword [edi], eax
movzx eax, byte [eax]
mov ecx, dword [ecx]
cmp byte [eax + ecx + 4], 1
je 0x47842b
dec dword [edi]
mov edx, dword [edi]
movzx eax, byte [edx]
mov ecx, dword [esi + 4]
mov edx, dword [ecx]
cmp byte [eax + edx + 4], 1
jne 0x478418
mov eax, dword [edi]
jmp 0x478b3b
mov eax, dword [edi]
dec eax
mov dword [edi], eax
movzx edx, byte [eax]
mov ebx, dword [ecx]
mov ecx, 1
cmp byte [edx + ebx + 4], cl
je 0x478b3b
jmp 0x478450
sub eax, ecx
mov dword [edi], eax
mov ebx, dword [esi + 4]
mov ebx, dword [ebx]
mov edx, eax
movzx edx, byte [edx]
cmp byte [edx + ebx + 4], cl
jne 0x478450
jmp 0x478b3b
mov cl, byte [esp + 0x17]
mov byte [esp + 0x17], cl
xor ebx, ebx
test dword [eax + 0x20], 0x400000
mov dword [esp + 0x18], ebx
jne 0x4784ba
mov ecx, dword [esi + 0x78]
inc ecx
mov dword [esi + 0x78], ecx
test dword [eax + 0x20], 0x800000
mov ebx, ecx
mov dword [esp + 0x18], ebx
je 0x4784ba
mov ecx, dword [edi]
sub ecx, dword [esi + 0x6c]
lea edx, [esp + 0x24]
add ecx, 0xfffffffe
mov dword [esp + 0x24], ecx
push edx
lea ecx, [eax + 0x150]
mov dword [esp + 0x2c], 0
call fcn.0046ff90
mov dword [ebp + 8], ebx
inc dword [edi]
mov eax, dword [edi]
mov ecx, dword [esi + 0x70]
mov ebp, eax
cmp eax, ecx
jne 0x478500
mov ecx, dword [esi + 4]
dec eax
mov dword [edi], eax
movzx eax, byte [eax]
mov edx, dword [ecx]
cmp byte [eax + edx + 4], 1
je 0x4784f3
lea esp, [esp]
dec dword [edi]
mov eax, dword [edi]
movzx ecx, byte [eax]
mov edx, dword [esi + 4]
mov eax, dword [edx]
cmp byte [ecx + eax + 4], 1
jne 0x4784e0
mov ecx, dword [edi]
sub ecx, dword [esi + 0x6c]
push ecx
jmp 0x478b3f
mov dl, byte [esp + 0x17]
cmp byte [eax], dl
je 0x478512
inc eax
mov edx, eax
mov dword [edi], eax
cmp edx, dword [esi + 0x70]
jne 0x478500
mov eax, dword [edi]
cmp eax, ecx
jne 0x478549
mov edx, dword [esi + 4]
dec eax
mov dword [edi], eax
movzx ecx, byte [eax]
mov edx, dword [edx]
cmp byte [ecx + edx + 4], 1
je 0x478b3b
mov edi, edi
dec eax
mov dword [edi], eax
mov ecx, eax
movzx edx, byte [ecx]
mov ecx, dword [esi + 4]
mov ecx, dword [ecx]
cmp byte [edx + ecx + 4], 1
jne 0x478530
jmp 0x478b3b
mov ecx, dword [esi]
push ebx
push eax
push ebp
call fcn.004750d0
inc dword [edi]
jmp 0x47876f
mov al, byte [esp + 0x17]
cmp al, 0x52
jne 0x4785aa
mov eax, dword [edi]
inc eax
mov dword [edi], eax
mov edx, dword [ecx]
mov dword [esp + 0x24], eax
movzx eax, byte [eax]
xor ebx, ebx
cmp byte [eax + edx + 4], 2
je 0x4786c6
mov eax, dword [esp + 0x24]
dec eax
mov dword [edi], eax
movzx edx, byte [eax]
mov ecx, dword [ecx]
mov al, 1
cmp byte [edx + ecx + 4], al
je 0x4785a3
dec dword [edi]
mov edx, dword [edi]
movzx ecx, byte [edx]
mov edx, dword [esi + 4]
mov edx, dword [edx]
cmp byte [ecx + edx + 4], al
jne 0x478591
mov eax, dword [edi]
jmp 0x478b3b
cmp al, 0x26
jne 0x478614
mov eax, dword [edi]
inc eax
mov dword [edi], eax
mov dword [esp + 0x24], eax
cmp eax, dword [esi + 0x70]
je 0x4785d6
lea esp, [esp]
movzx ebx, byte [eax]
mov edx, dword [ecx]
cmp byte [ebx + edx + 4], 2
je 0x4785d6
inc eax
mov edx, eax
mov dword [edi], eax
cmp edx, dword [esi + 0x70]
jne 0x4785c0
mov eax, dword [edi]
cmp eax, dword [esi + 0x70]
jne 0x478609
dec eax
mov dword [edi], eax
movzx edx, byte [eax]
mov ecx, dword [ecx]
cmp byte [edx + ecx + 4], 1
je 0x478b3b
dec eax
mov dword [edi], eax
mov edx, eax
movzx ecx, byte [edx]
mov edx, dword [esi + 4]
mov edx, dword [edx]
cmp byte [ecx + edx + 4], 1
jne 0x4785f0
jmp 0x478b3b
push eax
mov eax, dword [esp + 0x28]
push eax
jmp 0x4786bc
cmp al, 0x50
jne 0x477c54
mov eax, dword [edi]
mov edx, dword [esi + 0x70]
inc eax
mov dword [edi], eax
cmp eax, edx
jne 0x478651
dec eax
mov dword [edi], eax
movzx edx, byte [eax]
mov ecx, dword [ecx]
mov al, 1
cmp byte [edx + ecx + 4], al
je 0x47864a
dec dword [edi]
mov edx, dword [edi]
movzx ecx, byte [edx]
mov edx, dword [esi + 4]
mov edx, dword [edx]
cmp byte [ecx + edx + 4], al
jne 0x478638
mov eax, dword [edi]
jmp 0x478b3b
cmp byte [eax], 0x3e
jne 0x477c54
lea ebx, [eax + 1]
mov dword [esp + 0x24], ebx
mov dword [edi], ebx
cmp ebx, edx
je 0x478683
mov eax, dword [edi]
movzx ebx, byte [eax]
mov edx, dword [ecx]
cmp byte [ebx + edx + 4], 2
je 0x47867f
inc eax
mov edx, eax
mov dword [edi], eax
cmp edx, dword [esi + 0x70]
jne 0x478667
mov ebx, dword [esp + 0x24]
mov eax, dword [edi]
cmp eax, dword [esi + 0x70]
jne 0x4786ba
dec eax
mov dword [edi], eax
movzx edx, byte [eax]
mov ebx, dword [ecx]
mov ecx, 1
cmp byte [edx + ebx + 4], cl
je 0x478b3b
sub eax, ecx
mov dword [edi], eax
mov ebx, dword [esi + 4]
mov ebx, dword [ebx]
mov edx, eax
movzx edx, byte [edx]
cmp byte [edx + ebx + 4], cl
jne 0x4786a1
jmp 0x478b3b
push eax
push ebx
call fcn.004684b0
mov ebx, eax
add esp, 8
xor eax, eax
push 0x10
push 0x1d
mov ecx, esi
mov dword [esp + 0x20], eax
mov dword [ebp + 8], eax
call fcn.00469620
mov dword [eax + 8], ebx
mov dword [eax + 0xc], 0
mov eax, dword [esi]
mov ebx, dword [eax + 0x20]
jmp 0x478757
mov eax, dword [esi]
mov eax, dword [eax + 0x20]
shr eax, 0x14
mov ecx, ebx
shr ecx, 0x14
xor cl, al
and cl, 1
mov byte [esi + 0x8c], cl
xor eax, eax
mov dword [ebp + 8], eax
mov edx, dword [edi]
mov ecx, dword [esi + 4]
mov ebp, dword [ecx]
mov dword [esp + 0x18], eax
movzx eax, byte [edx]
cmp byte [eax + ebp + 4], 2
jne 0x478739
push ebx
mov ecx, esi
call fcn.00466c60
mov dl, byte [esi + 0x8c]
or byte [esp + 0x1e], dl
mov byte [esp + 0x1f], 0
jmp 0x47874e
cmp byte [eax + ebp + 4], 0x24
jne 0x478b16
push ebx
mov ecx, esi
call fcn.00466c60
inc dword [edi]
cmp byte [esi + 0x8c], 0
je 0x47876b
push 0xc
shr ebx, 0x14
push 0x1c
mov ecx, esi
and bl, 1
call fcn.00469620
mov byte [eax + 8], bl
mov ebx, dword [esp + 0x18]
mov ecx, esi
call fcn.00466cf0
mov eax, dword [esp + 0x2c]
push eax
mov ecx, esi
call fcn.0046db70
test al, al
jne 0x4787d2
dec dword [edi]
mov eax, dword [edi]
mov ecx, dword [esi + 4]
movzx edx, byte [eax]
mov ecx, dword [ecx]
cmp byte [edx + ecx + 4], 1
je 0x4787b4
lea esp, [esp]
dec eax
mov dword [edi], eax
mov ecx, dword [esi + 4]
mov ecx, dword [ecx]
mov edx, eax
movzx edx, byte [edx]
cmp byte [edx + ecx + 4], 1
jne 0x4787a0
push str.Invalid_alternation_operators_within___...__block.
lea ecx, [esp + 0x3c]
call fcn.004020b0
mov dword [esp + 0xd8], 4
jmp 0x478393
mov eax, dword [edi]
mov ecx, dword [esi + 0x70]
cmp eax, ecx
jne 0x47880f
mov ebx, dword [esi + 4]
dec eax
mov dword [edi], eax
movzx edx, byte [eax]
mov ebx, dword [ebx]
cmp byte [edx + ebx + 4], 1
je 0x478804
lea ecx, [ecx]
dec eax
mov dword [edi], eax
mov ebx, dword [esi + 4]
mov ebx, dword [ebx]
mov edx, eax
movzx edx, byte [edx]
cmp byte [edx + ebx + 4], 1
jne 0x4787f0
sub ecx, dword [esi + 0x6c]
push ecx
push 8
jmp 0x478b41
inc eax
cmp byte [esp + 0x1f], 0
mov dword [edi], eax
je 0x47884a
cmp byte [esi + 0x8c], 0
je 0x47883e
mov ebx, dword [esp + 0x30]
push 0xc
shr ebx, 0x14
push 0x1c
mov ecx, esi
and bl, 1
call fcn.00469620
mov byte [eax + 8], bl
mov ebx, dword [esp + 0x18]
mov eax, dword [esp + 0x30]
push eax
mov ecx, esi
call fcn.00466c60
mov ebp, dword [esp + 0x20]
test ebp, ebp
je 0x4788da
mov eax, dword [esi]
mov ecx, dword [eax + 0x144]
mov edx, dword [eax + 0x148]
add eax, 0x140
sub edx, ecx
add edx, 3
and edx, 0xfffffffc
add edx, ecx
mov dword [eax + 8], edx
mov eax, dword [esi]
mov edx, dword [eax + 0x144]
lea ecx, [edx + ebp]
mov ebp, dword [eax + 0x148]
sub ebp, edx
sub ebp, ecx
add ebp, edx
mov dword [ecx + 8], ebp
cmp dword [esi + 8], ecx
jne 0x4788da
dec dword [edi]
mov eax, dword [edi]
mov ecx, dword [esi + 4]
movzx edx, byte [eax]
mov ecx, dword [ecx]
cmp byte [edx + ecx + 4], 1
je 0x4788bc
dec eax
mov dword [edi], eax
mov ecx, dword [esi + 4]
mov ecx, dword [ecx]
mov edx, eax
movzx edx, byte [edx]
cmp byte [edx + ecx + 4], 1
jne 0x4788a8
push str.Invalid_or_empty_zero_width_assertion.
lea ecx, [esp + 0x3c]
call fcn.004020b0
mov dword [esp + 0xd8], 5
jmp 0x478393
cmp ebx, 0xfffffffc
jne 0x478a80
mov edx, dword [esi]
mov eax, dword [edx + 0x144]
mov ecx, dword [esp + 0x34]
add eax, ecx
cmp dword [eax], 0x11
je 0x4789ba
push 0x110
push 0x11
push ecx
mov ecx, esi
call fcn.004686b0
mov ecx, dword [esi]
mov edx, dword [ecx + 0x144]
mov ebp, dword [ecx + 0x148]
sub ebp, edx
sub ebp, eax
add ebp, edx
mov dword [eax + 8], ebp
mov edx, dword [esi]
mov eax, dword [edx + 0x144]
mov ecx, dword [esp + 0x34]
add eax, ecx
add eax, dword [eax + 4]
mov eax, dword [eax]
cmp eax, 0x1b
je 0x478a80
test eax, eax
je 0x478a80
dec dword [edi]
mov eax, dword [edi]
mov ecx, dword [esi + 4]
movzx edx, byte [eax]
mov ecx, dword [ecx]
cmp byte [edx + ecx + 4], 1
je 0x47896b
dec eax
mov dword [edi], eax
mov ecx, dword [esi + 4]
mov ecx, dword [ecx]
mov edx, eax
movzx edx, byte [edx]
cmp byte [edx + ecx + 4], 1
jne 0x478957
push str.A_repetition_operator_cannot_be_applied_to_a_zero_width_assertion.
lea ecx, [esp + 0xb8]
call fcn.004020b0
mov ecx, dword [edi]
sub ecx, dword [esi + 0x6c]
lea eax, [esp + 0xb4]
push eax
push ecx
push 0xd
mov ecx, esi
mov dword [esp + 0xe4], 8
call fcn.0046da20
lea ecx, [esp + 0xb4]
mov dword [esp + 0xd8], 0xffffffff
call fcn.00402960
jmp 0x478b48
mov ecx, dword [eax + 8]
cmp dword [eax + ecx], 0x11
jne 0x478a15
dec dword [edi]
mov eax, dword [edi]
mov ecx, dword [esi + 4]
movzx edx, byte [eax]
mov ecx, dword [ecx]
cmp byte [edx + ecx + 4], 1
je 0x4789ea
dec eax
mov dword [edi], eax
mov ecx, dword [esi + 4]
mov ecx, dword [ecx]
mov edx, eax
movzx edx, byte [edx]
cmp byte [edx + ecx + 4], 1
jne 0x4789d6
push str.More_than_one_alternation_operator__was_encountered_inside_a_conditional_expression.
lea ecx, [esp + 0x3c]
call fcn.004020b0
mov ecx, dword [edi]
sub ecx, dword [esi + 0x6c]
lea eax, [esp + 0x38]
push eax
push ecx
mov dword [esp + 0xe0], 6
push 2
jmp 0x4783a0
add eax, dword [eax + 4]
cmp dword [eax], 0x1b
jne 0x478920
cmp dword [eax + 8], 0x270f
jne 0x478920
dec dword [edi]
mov eax, dword [edi]
mov ecx, dword [esi + 4]
movzx edx, byte [eax]
mov ecx, dword [ecx]
cmp byte [edx + ecx + 4], 1
je 0x478a55
dec eax
mov dword [edi], eax
mov ecx, dword [esi + 4]
mov ecx, dword [ecx]
mov edx, eax
movzx edx, byte [edx]
cmp byte [edx + ecx + 4], 1
jne 0x478a41
push str.Alternation_operators_are_not_allowed_inside_a_DEFINE_block.
lea ecx, [esp + 0x3c]
call fcn.004020b0
mov ecx, dword [edi]
sub ecx, dword [esi + 0x6c]
lea eax, [esp + 0x38]
push eax
push ecx
mov dword [esp + 0xe0], 7
push 2
jmp 0x4783a0
push 0x10
push 1
mov ecx, esi
call fcn.00469620
mov dword [eax + 8], ebx
mov edx, dword [esi]
mov ecx, dword [edx + 0x20]
mov edx, dword [esp + 0x2c]
shr ecx, 0x14
and cl, 1
mov byte [eax + 0xc], cl
mov eax, dword [esp + 0x5c]
mov cl, byte [esp + 0x1e]
mov dword [esi + 0x88], eax
mov eax, dword [esi + 0x80]
mov dword [esi + 0x84], edx
mov byte [esi + 0x8c], cl
cmp eax, dword [esi + 0x78]
jbe 0x478ac8
mov dword [esi + 0x78], eax
mov edx, dword [esp + 0x58]
mov eax, dword [esp + 0x54]
mov dword [esi + 0x7c], edx
mov dword [esi + 0x80], eax
test ebx, ebx
jle 0x478b12
mov eax, dword [esi]
test dword [eax + 0x20], 0x800000
je 0x478b00
mov edi, dword [edi]
sub edi, dword [esi + 0x6c]
lea ecx, [ebx - 1]
push ecx
lea ecx, [eax + 0x150]
dec edi
call fcn.0046c280
mov dword [eax + 4], edi
cmp ebx, 0x20
jge 0x478b12
lea ecx, [ebx - 1]
mov edx, 1
shl edx, cl
or dword [esi + 0x18], edx
mov al, 1
jmp 0x478b4a
lea eax, [edx - 1]
mov dword [edi], eax
movzx edx, byte [eax]
mov ecx, dword [ecx]
cmp byte [edx + ecx + 4], 1
je 0x478b3b
dec eax
mov dword [edi], eax
mov edx, eax
movzx ecx, byte [edx]
mov edx, dword [esi + 4]
mov edx, dword [edx]
cmp byte [ecx + edx + 4], 1
jne 0x478b27
sub eax, dword [esi + 0x6c]
push eax
push 0x14
mov ecx, esi
call fcn.0046dab0
xor al, al
mov ecx, dword [esp + 0xd0]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebp
pop ebx
add esp, 0xc8
ret
sub esp, 0x14
push ebx
push esi
mov esi, ecx
mov ebx, 1
add dword [esi + 0x74], ebx
mov eax, dword [esi + 0x74]
cmp eax, dword [esi + 0x70]
jne 0x47991a
sub eax, dword [esi + 0x6c]
push eax
push 8
call fcn.0046dab0
pop esi
xor al, al
pop ebx
add esp, 0x14
ret
mov ecx, dword [esi]
mov edx, dword [ecx + 0x20]
push ebp
push edi
test edx, 0x203
je 0x479939
mov edi, edx
and edi, 0x1003
cmp edi, 0x1001
jne 0x479956
mov edi, dword [esi + 4]
movzx ebp, byte [eax]
mov edi, dword [edi]
cmp byte [edi + ebp + 4], 8
jne 0x479956
pop edi
pop ebp
mov ecx, esi
pop esi
pop ebx
add esp, 0x14
jmp 0x477980
xor edi, edi
test edx, 0x400000
jne 0x479990
add dword [esi + 0x78], ebx
test dword [ecx + 0x20], 0x800000
mov edi, dword [esi + 0x78]
je 0x479990
sub eax, dword [esi + 0x6c]
add ecx, 0x150
sub eax, ebx
mov dword [esp + 0x1c], eax
lea eax, [esp + 0x1c]
push eax
mov dword [esp + 0x24], 0
call fcn.0046ff90
push 0x10
push 0
mov ecx, esi
call fcn.00469620
mov dword [eax + 8], edi
mov ecx, dword [esi]
mov edx, dword [ecx + 0x20]
shr edx, 0x14
and dl, bl
mov byte [eax + 0xc], dl
mov ecx, dword [esi]
sub eax, dword [ecx + 0x144]
mov edx, dword [ecx + 0x148]
mov ebx, eax
mov eax, dword [esi + 0x88]
mov dword [esp + 0x1c], eax
mov eax, dword [ecx + 0x144]
sub edx, eax
add edx, 3
and edx, 0xfffffffc
add edx, eax
mov dword [ecx + 0x148], edx
mov eax, dword [esi]
mov ecx, dword [eax + 0x148]
sub ecx, dword [eax + 0x144]
mov dl, byte [esi + 0x8c]
mov dword [esi + 0x88], ecx
mov ebp, dword [eax + 0x20]
mov eax, dword [esi + 0x7c]
mov dword [esp + 0x14], ebx
mov byte [esp + 0x13], dl
mov byte [esi + 0x8c], 0
mov dword [esp + 0x18], eax
mov dword [esi + 0x7c], 0xffffffff
mov ecx, dword [esi + 0x74]
cmp ecx, dword [esi + 0x70]
je 0x479a28
mov edx, dword [esi + 0x68]
mov ecx, esi
call edx
test al, al
jne 0x479a15
push ebx
mov ecx, esi
call fcn.0046db70
test al, al
je 0x479a93
cmp byte [esi + 0x8c], 0
je 0x479a57
mov ebx, ebp
push 0xc
shr ebx, 0x14
push 0x1c
mov ecx, esi
and bl, 1
call fcn.00469620
mov byte [eax + 8], bl
mov ebx, dword [esp + 0x14]
mov eax, dword [esi]
mov dword [eax + 0x20], ebp
mov eax, ebp
shr eax, 0x14
and al, 1
cmp byte [esi + 0xc], al
je 0x479a6b
mov byte [esi + 0xc], al
mov cl, byte [esp + 0x13]
mov eax, dword [esi + 0x74]
mov edx, dword [esp + 0x18]
mov byte [esi + 0x8c], cl
mov ecx, dword [esi + 0x70]
mov dword [esi + 0x7c], edx
cmp eax, ecx
jne 0x479a9d
sub ecx, dword [esi + 0x6c]
push ecx
push 8
mov ecx, esi
call fcn.0046dab0
pop edi
pop ebp
pop esi
xor al, al
pop ebx
add esp, 0x14
ret
test edi, edi
je 0x479ac3
mov ecx, dword [esi]
test dword [ecx + 0x20], 0x800000
je 0x479ac3
sub eax, dword [esi + 0x6c]
add ecx, 0x150
mov ebp, eax
lea eax, [edi - 1]
push eax
call fcn.0046c280
mov dword [eax + 4], ebp
inc dword [esi + 0x74]
push 0x10
push 1
mov ecx, esi
call fcn.00469620
mov dword [eax + 8], edi
mov ecx, dword [esi]
mov edx, dword [ecx + 0x20]
shr edx, 0x14
and dl, 1
mov byte [eax + 0xc], dl
mov eax, dword [esp + 0x1c]
lea ecx, [edi - 1]
mov dword [esi + 0x84], ebx
mov dword [esi + 0x88], eax
cmp ecx, 0x1e
ja 0x479b04
mov edx, 1
shl edx, cl
or dword [esi + 0x18], edx
pop edi
pop ebp
pop esi
mov al, 1
pop ebx
add esp, 0x14
ret