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

Disassembly:
push 0xffffffffffffffff
push 0x4fe1d7
mov eax, dword fs:[0]
push eax
sub esp, 0xc0
mov eax, dword [0x543f30]
xor eax, esp
mov dword [esp + 0xbc], eax
push ebx
push ebp
push esi
push edi
mov eax, dword [0x543f30]
xor eax, esp
push eax
lea eax, [esp + 0xd4]
mov dword fs:[0], eax
mov esi, ecx
inc dword [esi + 0x64]
mov eax, dword [esi + 0x64]
mov ebx, dword [esi + 0x60]
mov edx, dword [esi + 4]
lea edi, [esi + 0x64]
cmp eax, ebx
jne 0x4ec18d
dec eax
mov dword [edi], eax
movzx ecx, byte [eax]
mov edx, dword [edx]
cmp byte [ecx + edx + 4], 1
je 0x4ec182
nop
dec eax
mov dword [edi], eax
movzx edx, byte [eax]
mov ecx, dword [esi + 4]
mov ecx, dword [ecx]
cmp byte [edx + ecx + 4], 1
jne 0x4ec170
mov edx, dword [edi]
sub edx, dword [esi + 0x5c]
push edx
jmp 0x4ed359
movzx ecx, byte [eax]
mov ebp, dword [edx]
mov cl, byte [ecx + ebp + 4]
cmp cl, 0xd
jne 0x4ec1bc
jmp 0x4ec1a0
cmp eax, ebx
je 0x4ec1b5
mov cl, byte [eax]
inc eax
mov dword [edi], eax
mov esi, dword [edx]
movzx ecx, cl
cmp byte [ecx + esi + 4], 2
jne 0x4ec1a0
mov al, 1
jmp 0x4ed364
xor ebx, ebx
push 0x10
push ebx
mov ecx, esi
mov dword [esp + 0x30], ebx
call fcn.004e7eb0
mov edx, dword [esi]
mov ebp, eax
mov eax, dword [edx + 0x18]
shr eax, 0x14
and al, 1
mov byte [ebp + 0xc], al
mov eax, dword [esi]
mov edx, dword [eax + 0x13c]
mov ecx, ebp
sub ecx, edx
mov dword [esp + 0x30], ecx
mov ecx, dword [esi + 0x78]
mov dword [esp + 0x3c], ecx
mov ecx, edx
mov edx, dword [eax + 0x140]
sub edx, ecx
add edx, 3
and edx, 0xfffffffc
add edx, ecx
mov dword [eax + 0x140], edx
mov eax, dword [esi]
mov ecx, dword [eax + 0x140]
sub ecx, dword [eax + 0x13c]
mov dl, byte [esi + 0x7c]
mov dword [esi + 0x78], ecx
mov dword [esp + 0x2c], ecx
mov ecx, dword [eax + 0x18]
mov dword [esp + 0x34], ecx
mov ecx, dword [esi + 0x6c]
mov byte [esi + 0x7c], bl
mov ebx, dword [edi]
mov byte [esp + 0x1f], dl
mov edx, dword [esi + 0x70]
mov dword [esp + 0x40], ecx
mov ecx, dword [esi + 0x68]
mov dword [esi + 0x70], ecx
mov ecx, dword [esi + 4]
mov dword [esi + 0x6c], 0xffffffff
mov bl, byte [ebx]
mov byte [esp + 0x16], bl
mov dword [esp + 0x38], edx
mov edx, dword [ecx]
movzx ebx, bl
movzx edx, byte [ebx + edx + 4]
dec edx
mov byte [esp + 0x17], 1
mov ebx, 0xfffffffe
cmp edx, 0x34
ja case.0x4ec27b.3
movzx edx, byte [edx + 0x4ed3c0]
jmp dword [edx*4 + 0x4ed38c]
mov eax, dword [esi + 0x68]
mov dword [esi + 0x6c], eax
xor eax, eax
mov ebx, 1
mov dword [ebp + 8], eax
add dword [edi], ebx
mov dword [esp + 0x18], eax
jmp 0x4ecf80
mov eax, dword [esi + 0x60]
push ecx
push 0xa
push eax
push edi
call fcn.004e8170
mov ebx, eax
add esp, 0x10
test ebx, ebx
js 0x4ec2c8
mov ecx, dword [edi]
mov eax, dword [esi + 4]
movzx edx, byte [ecx]
mov eax, dword [eax]
cmp byte [edx + eax + 4], 2
je 0x4eceab
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 0x4ec2f2
nop
sub eax, edx
mov dword [edi], eax
mov ecx, dword [esi + 4]
movzx ebx, byte [eax]
mov ecx, dword [ecx]
cmp byte [ebx + ecx + 4], dl
jne 0x4ec2e0
push str.The_recursive_sub_expression_refers_to_an_invalid_marking_group__or_is_unterminated.
lea ecx, [esp + 0x80]
call fcn.00404f45
mov ecx, dword [edi]
sub ecx, dword [esi + 0x5c]
lea eax, [esp + 0x7c]
push eax
push ecx
push 0x14
mov ecx, esi
mov dword [esp + 0xe8], 0
call fcn.004e9840
lea ecx, [esp + 0x7c]
call fcn.0040125d
jmp 0x4ed362
mov eax, dword [edi]
inc eax
push ecx
mov dword [edi], eax
mov eax, dword [esi + 0x60]
push 0xa
push eax
push edi
call fcn.004e8170
mov ebx, eax
add esp, 0x10
test ebx, ebx
jle 0x4ec364
mov edx, dword [edi]
mov eax, dword [esi + 4]
movzx ecx, byte [edx]
mov eax, dword [eax]
cmp byte [ecx + eax + 4], 2
jne 0x4ec364
add ebx, dword [esi + 0x68]
jmp 0x4eceab
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 0x4ec392
jmp 0x4ec380
sub eax, ebx
mov dword [edi], eax
mov ecx, dword [esi + 4]
movzx edx, byte [eax]
mov ecx, dword [ecx]
cmp byte [edx + ecx + 4], bl
jne 0x4ec380
push str.An_invalid_or_unterminated_recursive_sub_expression.
lea ecx, [esp + 0x64]
call fcn.00404f45
mov ecx, dword [edi]
sub ecx, dword [esi + 0x5c]
lea eax, [esp + 0x60]
push eax
push ecx
push 0x14
mov ecx, esi
mov dword [esp + 0xe8], ebx
call fcn.004e9840
lea ecx, [esp + 0x60]
call fcn.0040125d
jmp 0x4ed362
mov eax, dword [edi]
inc eax
push ecx
mov dword [edi], eax
mov eax, dword [esi + 0x60]
push 0xa
push eax
push edi
call fcn.004e8170
add esp, 0x10
test eax, eax
jg 0x4ec42b
dec dword [edi]
mov ecx, esi
call fcn.004eb730
mov dword [esp + 0x20], eax
mov eax, dword [edi]
cmp eax, dword [esi + 0x60]
jne 0x4eceec
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 0x4ed355
sub eax, ecx
mov dword [edi], eax
movzx edx, byte [eax]
mov ebx, dword [esi + 4]
mov ebx, dword [ebx]
cmp byte [edx + ebx + 4], cl
jne 0x4ec414
jmp 0x4ed355
mov ebx, dword [esi + 0x68]
sub ebx, eax
inc ebx
test ebx, ebx
jg 0x4eceab
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 0x4ec462
lea esp, [esp]
dec eax
mov dword [edi], eax
mov ecx, dword [esi + 4]
movzx edx, byte [eax]
mov ecx, dword [ecx]
cmp byte [edx + ecx + 4], 1
jne 0x4ec450
push str.An_invalid_or_unterminated_recursive_sub_expression.
lea ecx, [esp + 0x9c]
call fcn.00404f45
mov ecx, dword [edi]
sub ecx, dword [esi + 0x5c]
lea eax, [esp + 0x98]
push eax
push ecx
push 0x14
mov ecx, esi
mov dword [esp + 0xe8], 2
call fcn.004e9840
lea ecx, [esp + 0x98]
call fcn.0040125d
jmp 0x4ed362
or eax, 0xffffffff
push 0xc
mov dword [ebp + 8], eax
mov ebx, 1
add dword [edi], ebx
push 0x10
mov ecx, esi
mov dword [esp + 0x20], eax
call fcn.004e7eb0
mov ecx, dword [esi]
sub eax, dword [ecx + 0x13c]
mov edx, dword [ecx + 0x140]
mov dword [esp + 0x28], eax
mov eax, dword [ecx + 0x13c]
sub edx, eax
add edx, 3
and edx, 0xfffffffc
add edx, eax
mov dword [ecx + 0x140], edx
mov eax, dword [esi]
mov ecx, dword [eax + 0x140]
sub ecx, dword [eax + 0x13c]
mov dword [esi + 0x78], ecx
jmp 0x4ecf80
mov dword [ebp + 8], ebx
push 0xc
mov dword [esp + 0x1c], ebx
mov ebx, 1
add dword [edi], ebx
push 0x10
mov ecx, esi
call fcn.004e7eb0
mov ecx, dword [esi]
sub eax, dword [ecx + 0x13c]
mov edx, dword [ecx + 0x140]
mov dword [esp + 0x28], eax
mov eax, dword [ecx + 0x13c]
sub edx, eax
add edx, 3
and edx, 0xfffffffc
add edx, eax
mov dword [ecx + 0x140], edx
mov eax, dword [esi]
mov ecx, dword [eax + 0x140]
sub ecx, dword [eax + 0x13c]
mov dword [esi + 0x78], ecx
jmp 0x4ecf80
mov edx, dword [edi]
inc edx
mov dword [edi], edx
cmp edx, dword [esi + 0x60]
jne 0x4ec58f
lea eax, [edx - 1]
mov dword [edi], eax
movzx edx, byte [eax]
mov ebx, dword [ecx]
mov ecx, 1
cmp byte [edx + ebx + 4], cl
je 0x4ec588
sub eax, ecx
mov dword [edi], eax
movzx edx, byte [eax]
mov ebx, dword [esi + 4]
mov ebx, dword [ebx]
cmp byte [edx + ebx + 4], cl
jne 0x4ec576
mov eax, dword [edi]
jmp 0x4ed355
movzx ebx, byte [edx]
mov ecx, dword [ecx]
mov cl, byte [ebx + ecx + 4]
cmp cl, 0x35
jne 0x4ec5a4
mov eax, 0xfffffffe
jmp 0x4ec5ac
cmp cl, 0x25
jne 0x4ec5ff
or eax, 0xffffffff
push 0xc
mov dword [ebp + 8], eax
mov ebx, 1
add dword [edi], ebx
push 0x10
mov ecx, esi
mov dword [esp + 0x20], eax
call fcn.004e7eb0
mov ecx, dword [esi]
sub eax, dword [ecx + 0x13c]
push 0x10
push 0x1a
mov ecx, esi
mov dword [esp + 0x30], eax
call fcn.004e7eb0
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
jmp 0x4ec4ea
dec edx
mov byte [esp + 0x16], 0x3e
mov dword [edi], edx
jmp 0x4ecc54
mov eax, 0xfffffffd
jmp 0x4ec4a9
mov eax, 0xfffffffc
mov dword [ebp + 8], eax
mov ebx, 1
add dword [edi], ebx
mov ecx, dword [edi]
mov dword [esp + 0x18], eax
mov eax, dword [esi + 0x60]
cmp ecx, eax
jne 0x4ec65e
lea eax, [ecx - 1]
mov ecx, dword [esi + 4]
mov dword [edi], eax
movzx edx, byte [eax]
mov ecx, dword [ecx]
cmp byte [edx + ecx + 4], bl
je 0x4ec657
sub eax, ebx
mov dword [edi], eax
movzx ecx, byte [eax]
mov edx, dword [esi + 4]
mov edx, dword [edx]
cmp byte [ecx + edx + 4], bl
jne 0x4ec645
mov eax, dword [edi]
jmp 0x4ed355
mov ecx, dword [esi + 4]
push ecx
push 0xa
push eax
push edi
call fcn.004e8170
mov ecx, dword [edi]
mov ebp, dword [esi + 0x60]
add esp, 0x10
mov dword [esp + 0x20], eax
cmp ecx, ebp
jne 0x4ec6a9
mov edx, dword [esi + 4]
lea eax, [ecx - 1]
mov dword [edi], eax
movzx ecx, byte [eax]
mov edx, dword [edx]
cmp byte [ecx + edx + 4], bl
je 0x4ed355
sub eax, ebx
mov dword [edi], eax
movzx edx, byte [eax]
mov ecx, dword [esi + 4]
mov ecx, dword [ecx]
cmp byte [edx + ecx + 4], bl
jne 0x4ec692
jmp 0x4ed355
mov dl, byte [ecx]
cmp dl, 0x52
jne 0x4ec7fa
inc ecx
mov dword [edi], ecx
cmp ecx, ebp
jne 0x4ec6e9
lea eax, [ecx - 1]
mov ecx, dword [esi + 4]
mov dword [edi], eax
movzx edx, byte [eax]
mov ecx, dword [ecx]
cmp byte [edx + ecx + 4], bl
je 0x4ec6e2
mov edi, edi
sub eax, ebx
mov dword [edi], eax
movzx ecx, byte [eax]
mov edx, dword [esi + 4]
mov edx, dword [edx]
cmp byte [ecx + edx + 4], bl
jne 0x4ec6d0
mov eax, dword [edi]
jmp 0x4ed355
cmp byte [ecx], 0x26
jne 0x4ec75a
inc ecx
mov dword [esp + 0x20], ecx
mov dword [edi], ecx
cmp ecx, ebp
je 0x4ec71b
mov ebp, dword [esi + 4]
lea esp, [esp]
mov eax, dword [edi]
movzx edx, byte [eax]
mov ecx, dword [ebp]
cmp byte [edx + ecx + 4], 2
je 0x4ec717
inc eax
mov dword [edi], eax
cmp eax, dword [esi + 0x60]
jne 0x4ec700
mov ecx, dword [esp + 0x20]
mov eax, dword [edi]
cmp eax, dword [esi + 0x60]
jne 0x4ec74e
mov edx, dword [esi + 4]
dec eax
mov dword [edi], eax
movzx ecx, byte [eax]
mov edx, dword [edx]
cmp byte [ecx + edx + 4], bl
je 0x4ed355
sub eax, ebx
mov dword [edi], eax
movzx edx, byte [eax]
mov ecx, dword [esi + 4]
mov ecx, dword [ecx]
cmp byte [edx + ecx + 4], bl
jne 0x4ec737
jmp 0x4ed355
push eax
push ecx
call fcn.004e7e50
add esp, 8
jmp 0x4ec76a
mov eax, dword [esi + 4]
push eax
push 0xa
push ebp
push edi
call fcn.004e8170
add esp, 0x10
push 0x10
mov ebp, eax
push 0x1b
mov ecx, esi
neg ebp
call fcn.004e7eb0
test ebp, ebp
jns 0x4ec782
lea ecx, [ebp - 1]
jmp 0x4ec784
xor ecx, ecx
mov dword [eax + 8], ecx
mov eax, dword [edi]
mov ecx, dword [esi + 4]
movzx ebp, byte [eax]
mov edx, dword [ecx]
cmp byte [edx + ebp + 4], 2
je 0x4ec7c7
dec eax
mov dword [edi], eax
movzx edx, byte [eax]
mov ecx, dword [ecx]
cmp byte [edx + ecx + 4], bl
je 0x4ed355
lea ebx, [ebx]
sub eax, ebx
mov dword [edi], eax
movzx ecx, byte [eax]
mov edx, dword [esi + 4]
mov edx, dword [edx]
cmp byte [ecx + edx + 4], bl
jne 0x4ec7b0
jmp 0x4ed355
inc eax
mov dword [edi], eax
cmp eax, dword [esi + 0x60]
jne 0x4ecf80
dec eax
mov dword [edi], eax
movzx edx, byte [eax]
mov ecx, dword [ecx]
cmp byte [edx + ecx + 4], bl
je 0x4ec7f3
sub eax, ebx
mov dword [edi], eax
movzx ecx, byte [eax]
mov edx, dword [esi + 4]
mov edx, dword [edx]
cmp byte [ecx + edx + 4], bl
jne 0x4ec7e1
mov eax, dword [edi]
jmp 0x4ed355
cmp dl, 0x27
je 0x4ecac7
cmp dl, 0x3c
je 0x4ecac7
cmp dl, 0x44
jne 0x4ec8f7
mov ecx, str.DEFINE
lea ebx, [ebx]
mov eax, dword [edi]
cmp eax, ebp
je 0x4ec836
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x4ec836
inc eax
add ecx, ebx
mov dword [edi], eax
cmp byte [ecx], 0
jne 0x4ec820
mov eax, dword [edi]
cmp eax, ebp
je 0x4ec8ca
cmp byte [ecx], 0
jne 0x4ec8ca
push 0x10
push 0x1b
mov ecx, esi
call fcn.004e7eb0
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 0x4ec897
dec eax
mov dword [edi], eax
movzx edx, byte [eax]
mov ecx, dword [ecx]
cmp byte [edx + ecx + 4], bl
je 0x4ed355
mov edi, edi
sub eax, ebx
mov dword [edi], eax
movzx ecx, byte [eax]
mov edx, dword [esi + 4]
mov edx, dword [edx]
cmp byte [ecx + edx + 4], bl
jne 0x4ec880
jmp 0x4ed355
inc eax
mov dword [edi], eax
cmp eax, dword [esi + 0x60]
jne 0x4ecf80
dec eax
mov dword [edi], eax
movzx edx, byte [eax]
mov ecx, dword [ecx]
cmp byte [edx + ecx + 4], bl
je 0x4ec8c3
sub eax, ebx
mov dword [edi], eax
movzx ecx, byte [eax]
mov edx, dword [esi + 4]
mov edx, dword [edx]
cmp byte [ecx + edx + 4], bl
jne 0x4ec8b1
mov eax, dword [edi]
jmp 0x4ed355
mov edx, dword [esi + 4]
dec eax
mov dword [edi], eax
movzx ecx, byte [eax]
mov edx, dword [edx]
cmp byte [ecx + edx + 4], bl
je 0x4ed355
nop
sub eax, ebx
mov dword [edi], eax
movzx edx, byte [eax]
mov ecx, dword [esi + 4]
mov ecx, dword [ecx]
cmp byte [edx + ecx + 4], bl
jne 0x4ec8e0
jmp 0x4ed355
test eax, eax
jle 0x4ec97e
push 0x10
push 0x1b
mov ecx, esi
call fcn.004e7eb0
mov edx, dword [esp + 0x20]
mov dword [eax + 8], edx
mov eax, dword [edi]
mov ecx, dword [esi + 4]
movzx ebp, byte [eax]
mov edx, dword [ecx]
cmp byte [edx + ebp + 4], 2
je 0x4ec94b
dec eax
mov dword [edi], eax
movzx edx, byte [eax]
mov ecx, dword [ecx]
cmp byte [edx + ecx + 4], bl
je 0x4ed355
sub eax, ebx
mov dword [edi], eax
movzx ecx, byte [eax]
mov edx, dword [esi + 4]
mov edx, dword [edx]
cmp byte [ecx + edx + 4], bl
jne 0x4ec934
jmp 0x4ed355
inc eax
mov dword [edi], eax
cmp eax, dword [esi + 0x60]
jne 0x4ecf80
dec eax
mov dword [edi], eax
movzx edx, byte [eax]
mov ecx, dword [ecx]
cmp byte [edx + ecx + 4], bl
je 0x4ec977
sub eax, ebx
mov dword [edi], eax
movzx ecx, byte [eax]
mov edx, dword [esi + 4]
mov edx, dword [edx]
cmp byte [ecx + edx + 4], bl
jne 0x4ec965
mov eax, dword [edi]
jmp 0x4ed355
mov eax, dword [esi + 4]
mov ebp, dword [eax]
movzx edx, dl
cmp byte [edx + ebp + 4], 8
je 0x4ec9bb
dec ecx
mov dword [edi], ecx
movzx edx, byte [ecx]
mov eax, dword [eax]
cmp byte [edx + eax + 4], bl
je 0x4ec9b2
jmp 0x4ec9a0
sub ecx, ebx
mov dword [edi], ecx
movzx eax, byte [ecx]
mov edx, dword [esi + 4]
mov edx, dword [edx]
cmp byte [eax + edx + 4], bl
jne 0x4ec9a0
sub ecx, dword [esi + 0x5c]
push ecx
jmp 0x4ed359
inc ecx
mov dword [edi], ecx
cmp ecx, dword [esi + 0x60]
jne 0x4ec9f0
dec ecx
mov dword [edi], ecx
movzx edx, byte [ecx]
mov eax, dword [eax]
cmp byte [edx + eax + 4], bl
je 0x4ec9e5
mov eax, ecx
sub eax, ebx
mov dword [edi], eax
movzx edx, byte [eax]
mov ecx, dword [esi + 4]
mov ecx, dword [ecx]
cmp byte [edx + ecx + 4], bl
jne 0x4ec9d3
mov edx, dword [edi]
sub edx, dword [esi + 0x5c]
push edx
jmp 0x4ed359
movzx edx, byte [ecx]
mov ebp, dword [eax]
cmp byte [edx + ebp + 4], 0x14
jne 0x4eca7f
inc ecx
mov dword [edi], ecx
cmp ecx, dword [esi + 0x60]
jne 0x4eca35
dec ecx
mov dword [edi], ecx
movzx edx, byte [ecx]
mov eax, dword [eax]
cmp byte [edx + eax + 4], bl
je 0x4eca2a
mov eax, ecx
sub eax, ebx
mov dword [edi], eax
movzx edx, byte [eax]
mov ecx, dword [esi + 4]
mov ecx, dword [ecx]
cmp byte [edx + ecx + 4], bl
jne 0x4eca18
mov edx, dword [edi]
sub edx, dword [esi + 0x5c]
push edx
jmp 0x4ed359
movzx edx, byte [ecx]
mov ebp, dword [eax]
cmp byte [edx + ebp + 4], 0x25
je 0x4eca75
cmp byte [edx + ebp + 4], 0x35
je 0x4eca75
dec ecx
mov dword [edi], ecx
movzx edx, byte [ecx]
mov eax, dword [eax]
cmp byte [edx + eax + 4], bl
je 0x4eca6a
mov eax, ecx
sub eax, ebx
mov dword [edi], eax
movzx edx, byte [eax]
mov ecx, dword [esi + 4]
mov ecx, dword [ecx]
cmp byte [edx + ecx + 4], bl
jne 0x4eca58
mov edx, dword [edi]
sub edx, dword [esi + 0x5c]
push edx
jmp 0x4ed359
add ecx, 0xfffffffd
mov dword [edi], ecx
jmp 0x4ecf80
cmp byte [edx + ebp + 4], 0x25
je 0x4ecabd
cmp byte [edx + ebp + 4], 0x35
je 0x4ecabd
dec ecx
mov dword [edi], ecx
movzx edx, byte [ecx]
mov eax, dword [eax]
cmp byte [edx + eax + 4], bl
je 0x4ecab2
mov eax, ecx
lea ecx, [ecx]
sub eax, ebx
mov dword [edi], eax
movzx edx, byte [eax]
mov ecx, dword [esi + 4]
mov ecx, dword [ecx]
cmp byte [edx + ecx + 4], bl
jne 0x4ecaa0
mov edx, dword [edi]
sub edx, dword [esi + 0x5c]
push edx
jmp 0x4ed359
add ecx, 0xfffffffe
mov dword [edi], ecx
jmp 0x4ecf80
lea eax, [ecx + 1]
mov dword [edi], eax
mov edx, eax
cmp eax, ebp
je 0x4ecae9
mov cl, byte [eax]
cmp cl, 0x3e
je 0x4ecae9
cmp cl, 0x27
je 0x4ecae9
add eax, ebx
mov ecx, eax
mov dword [edi], eax
cmp ecx, dword [esi + 0x60]
jne 0x4ecad2
mov eax, dword [edi]
cmp eax, dword [esi + 0x60]
jne 0x4ecb1c
mov ecx, dword [esi + 4]
dec eax
mov dword [edi], eax
movzx edx, byte [eax]
mov ecx, dword [ecx]
cmp byte [edx + ecx + 4], bl
je 0x4ed355
sub eax, ebx
mov dword [edi], eax
movzx ecx, byte [eax]
mov edx, dword [esi + 4]
mov edx, dword [edx]
cmp byte [ecx + edx + 4], bl
jne 0x4ecb05
jmp 0x4ed355
push eax
push edx
call fcn.004e7e50
add esp, 8
push 0x10
push 0x1b
mov ecx, esi
mov ebp, eax
call fcn.004e7eb0
mov dword [eax + 8], ebp
mov eax, dword [edi]
mov cl, byte [eax]
cmp cl, 0x3e
je 0x4ecb44
cmp cl, 0x27
jne 0x4ecb4c
inc eax
mov dword [edi], eax
cmp eax, dword [esi + 0x60]
jne 0x4ecbad
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], bl
je 0x4ecb72
mov edi, edi
sub eax, ebx
mov dword [edi], eax
mov ecx, dword [esi + 4]
movzx edx, byte [eax]
mov ecx, dword [ecx]
cmp byte [edx + ecx + 4], bl
jne 0x4ecb60
push str.Unterminated_named_capture.
lea ecx, [esp + 0x48]
call fcn.00404f45
mov dword [esp + 0xdc], 3
mov ecx, dword [edi]
sub ecx, dword [esi + 0x5c]
lea eax, [esp + 0x44]
push eax
push ecx
push 0x14
mov ecx, esi
call fcn.004e9840
lea ecx, [esp + 0x44]
call fcn.0040125d
jmp 0x4ed362
mov ecx, dword [esi + 4]
movzx ebp, byte [eax]
mov edx, dword [ecx]
cmp byte [edx + ebp + 4], 2
je 0x4ecbe9
dec eax
mov dword [edi], eax
movzx edx, byte [eax]
mov ecx, dword [ecx]
cmp byte [edx + ecx + 4], bl
je 0x4ecbe2
lea ebx, [ebx]
sub eax, ebx
mov dword [edi], eax
movzx ecx, byte [eax]
mov edx, dword [esi + 4]
mov edx, dword [edx]
cmp byte [ecx + edx + 4], bl
jne 0x4ecbd0
mov eax, dword [edi]
jmp 0x4ed355
inc eax
mov dword [edi], eax
cmp eax, dword [esi + 0x60]
jne 0x4ecf80
dec eax
mov dword [edi], eax
movzx edx, byte [eax]
mov ecx, dword [ecx]
cmp byte [edx + ecx + 4], bl
je 0x4ecc15
sub eax, ebx
mov dword [edi], eax
movzx ecx, byte [eax]
mov edx, dword [esi + 4]
mov edx, dword [edx]
cmp byte [ecx + edx + 4], bl
jne 0x4ecc03
mov eax, dword [edi]
jmp 0x4ed355
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 0x4ed355
sub eax, ecx
mov dword [edi], eax
movzx edx, byte [eax]
mov ebx, dword [esi + 4]
mov ebx, dword [ebx]
cmp byte [edx + ebx + 4], cl
jne 0x4ecc35
jmp 0x4ed355
mov cl, byte [esp + 0x16]
mov byte [esp + 0x16], cl
xor edx, edx
test dword [eax + 0x18], 0x400000
mov dword [esp + 0x18], edx
jne 0x4ecc97
mov ecx, dword [esi + 0x68]
inc ecx
mov dword [esi + 0x68], ecx
test dword [eax + 0x18], 0x800000
mov dword [esp + 0x18], ecx
je 0x4ecc97
mov ecx, dword [edi]
sub ecx, dword [esi + 0x5c]
mov dword [esp + 0x24], edx
add ecx, 0xfffffffe
lea edx, [esp + 0x20]
mov dword [esp + 0x20], ecx
push edx
lea ecx, [eax + 0x148]
call fcn.004daff0
mov eax, dword [esp + 0x18]
mov dword [ebp + 8], eax
mov ebp, dword [esi + 0x60]
mov ebx, 1
add dword [edi], ebx
mov eax, dword [edi]
mov ecx, eax
cmp eax, ebp
jne 0x4eccde
mov edx, dword [esi + 4]
dec eax
mov dword [edi], eax
movzx ecx, byte [eax]
mov edx, dword [edx]
cmp byte [ecx + edx + 4], bl
je 0x4eccd3
sub eax, ebx
mov dword [edi], eax
movzx edx, byte [eax]
mov ecx, dword [esi + 4]
mov ecx, dword [ecx]
cmp byte [edx + ecx + 4], bl
jne 0x4eccc1
mov edx, dword [edi]
sub edx, dword [esi + 0x5c]
push edx
jmp 0x4ed359
mov dl, byte [eax]
cmp dl, byte [esp + 0x16]
je 0x4eccef
add eax, ebx
mov dword [edi], eax
cmp eax, dword [esi + 0x60]
jne 0x4eccde
mov eax, dword [edi]
cmp eax, ebp
jne 0x4ecd27
mov edx, dword [esi + 4]
dec eax
mov dword [edi], eax
movzx ecx, byte [eax]
mov edx, dword [edx]
cmp byte [ecx + edx + 4], bl
je 0x4ed355
lea ebx, [ebx]
sub eax, ebx
mov dword [edi], eax
movzx edx, byte [eax]
mov ecx, dword [esi + 4]
mov ecx, dword [ecx]
cmp byte [edx + ecx + 4], bl
jne 0x4ecd10
jmp 0x4ed355
mov edx, dword [esp + 0x18]
push edx
push eax
push ecx
mov ecx, dword [esi]
call fcn.004eb9b0
add dword [edi], ebx
jmp 0x4ecf80
mov al, byte [esp + 0x16]
cmp al, 0x52
jne 0x4ecd8f
mov eax, dword [edi]
inc eax
mov dword [edi], eax
mov edx, dword [ecx]
mov dword [esp + 0x20], eax
movzx eax, byte [eax]
xor ebx, ebx
cmp byte [eax + edx + 4], 2
je 0x4eceab
mov eax, dword [esp + 0x20]
dec eax
mov dword [edi], eax
movzx edx, byte [eax]
mov ebx, dword [ecx]
mov ecx, 1
cmp byte [edx + ebx + 4], cl
je 0x4ecd88
sub eax, ecx
mov dword [edi], eax
movzx edx, byte [eax]
mov ebx, dword [esi + 4]
mov ebx, dword [ebx]
cmp byte [edx + ebx + 4], cl
jne 0x4ecd76
mov eax, dword [edi]
jmp 0x4ed355
cmp al, 0x26
jne 0x4ecdf2
mov eax, dword [edi]
inc eax
mov dword [edi], eax
mov dword [esp + 0x20], eax
cmp eax, dword [esi + 0x60]
je 0x4ecdb5
movzx ebx, byte [eax]
mov edx, dword [ecx]
cmp byte [ebx + edx + 4], 2
je 0x4ecdb5
inc eax
mov dword [edi], eax
cmp eax, dword [esi + 0x60]
jne 0x4ecda1
mov eax, dword [edi]
cmp eax, dword [esi + 0x60]
jne 0x4ecde7
dec eax
mov dword [edi], eax
movzx edx, byte [eax]
mov ecx, dword [ecx]
cmp byte [edx + ecx + 4], 1
je 0x4ed355
nop
dec eax
mov dword [edi], eax
movzx ecx, byte [eax]
mov edx, dword [esi + 4]
mov edx, dword [edx]
cmp byte [ecx + edx + 4], 1
jne 0x4ecdd0
jmp 0x4ed355
push eax
mov eax, dword [esp + 0x24]
push eax
jmp 0x4ecea1
cmp al, 0x50
jne 0x4ec3e4
mov eax, dword [edi]
mov edx, dword [esi + 0x60]
inc eax
mov dword [edi], eax
cmp eax, edx
jne 0x4ece39
dec eax
mov dword [edi], eax
movzx edx, byte [eax]
mov ebx, dword [ecx]
mov ecx, 1
cmp byte [edx + ebx + 4], cl
je 0x4ece32
lea esp, [esp]
sub eax, ecx
mov dword [edi], eax
movzx edx, byte [eax]
mov ebx, dword [esi + 4]
mov ebx, dword [ebx]
cmp byte [edx + ebx + 4], cl
jne 0x4ece20
mov eax, dword [edi]
jmp 0x4ed355
cmp byte [eax], 0x3e
jne 0x4ec3e4
lea ebx, [eax + 1]
mov dword [esp + 0x20], ebx
mov dword [edi], ebx
cmp ebx, edx
je 0x4ece6a
nop
mov eax, dword [edi]
movzx ebx, byte [eax]
mov edx, dword [ecx]
cmp byte [ebx + edx + 4], 2
je 0x4ece66
inc eax
mov dword [edi], eax
cmp eax, dword [esi + 0x60]
jne 0x4ece50
mov ebx, dword [esp + 0x20]
mov eax, dword [edi]
cmp eax, dword [esi + 0x60]
jne 0x4ece9f
dec eax
mov dword [edi], eax
movzx edx, byte [eax]
mov ebx, dword [ecx]
mov ecx, 1
cmp byte [edx + ebx + 4], cl
je 0x4ed355
sub eax, ecx
mov dword [edi], eax
movzx edx, byte [eax]
mov ebx, dword [esi + 4]
mov ebx, dword [ebx]
cmp byte [edx + ebx + 4], cl
jne 0x4ece88
jmp 0x4ed355
push eax
push ebx
call fcn.004e7e50
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.004e7eb0
mov dword [eax + 8], ebx
mov dword [eax + 0xc], 0
mov eax, dword [esi]
mov ebx, dword [eax + 0x18]
push 0xc
shr ebx, 0x14
push 0x1c
mov ecx, esi
and bl, 1
call fcn.004e7eb0
mov byte [eax + 8], bl
mov ebx, 1
jmp 0x4ecf80
mov eax, dword [esi]
mov eax, dword [eax + 0x18]
mov ecx, dword [esp + 0x20]
shr ecx, 0x14
shr eax, 0x14
xor cl, al
mov ebx, 1
and cl, bl
mov byte [esi + 0x7c], 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 0x4ecf3b
mov edx, dword [esp + 0x20]
push edx
mov ecx, esi
call fcn.004d4c10
mov al, byte [esi + 0x7c]
or byte [esp + 0x1f], al
mov byte [esp + 0x17], 0
jmp 0x4ecf54
cmp byte [eax + ebp + 4], 0x24
jne 0x4ed333
mov ecx, dword [esp + 0x20]
push ecx
mov ecx, esi
call fcn.004d4c10
add dword [edi], ebx
cmp byte [esi + 0x7c], 0
je 0x4ecf80
mov eax, dword [esp + 0x20]
shr eax, 0x14
push 0xc
and al, bl
push 0x1c
mov ecx, esi
mov byte [esp + 0x1e], al
call fcn.004e7eb0
mov cl, byte [esp + 0x16]
mov byte [eax + 8], cl
lea esp, [esp]
mov edx, dword [edi]
cmp edx, dword [esi + 0x60]
je 0x4ecf92
mov eax, dword [esi + 0x58]
mov ecx, esi
call eax
test al, al
jne 0x4ecf80
mov ecx, dword [esp + 0x30]
push ecx
mov ecx, esi
call fcn.004e9a30
test al, al
jne 0x4ecfe4
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], bl
je 0x4ecfc6
sub eax, ebx
mov dword [edi], eax
mov ecx, dword [esi + 4]
movzx edx, byte [eax]
mov ecx, dword [ecx]
cmp byte [edx + ecx + 4], bl
jne 0x4ecfb4
push str.Invalid_alternation_operators_within___...__block.
lea ecx, [esp + 0x48]
call fcn.00404f45
mov dword [esp + 0xdc], 4
jmp 0x4ecb8b
mov eax, dword [edi]
mov ecx, dword [esi + 0x60]
cmp eax, ecx
jne 0x4ed01e
mov ebp, dword [esi + 4]
dec eax
mov dword [edi], eax
movzx edx, byte [eax]
mov ebp, dword [ebp]
cmp byte [edx + ebp + 4], bl
je 0x4ed013
nop
sub eax, ebx
mov dword [edi], eax
movzx edx, byte [eax]
mov ebp, dword [esi + 4]
mov ebp, dword [ebp]
cmp byte [edx + ebp + 4], bl
jne 0x4ed000
sub ecx, dword [esi + 0x5c]
push ecx
push 8
jmp 0x4ed35b
inc eax
cmp byte [esp + 0x17], 0
mov dword [edi], eax
je 0x4ed05e
cmp byte [esi + 0x7c], 0
je 0x4ed052
mov eax, dword [esp + 0x34]
shr eax, 0x14
push 0xc
and al, bl
push 0x1c
mov ecx, esi
mov byte [esp + 0x1f], al
call fcn.004e7eb0
mov cl, byte [esp + 0x17]
mov byte [eax + 8], cl
mov ebx, 1
mov eax, dword [esp + 0x34]
push eax
mov ecx, esi
call fcn.004d4c10
mov ebp, dword [esp + 0x28]
test ebp, ebp
je 0x4ed0f0
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
mov eax, dword [esi]
mov edx, dword [eax + 0x13c]
lea ecx, [edx + ebp]
mov ebp, dword [eax + 0x140]
sub ebp, edx
sub ebp, ecx
add ebp, edx
mov dword [ecx + 8], ebp
cmp dword [esi + 8], ecx
jne 0x4ed0f0
cmp dword [esp + 0x18], 0xfffffffe
je 0x4ed0f0
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], bl
je 0x4ed0d2
sub eax, ebx
mov dword [edi], eax
mov ecx, dword [esi + 4]
movzx edx, byte [eax]
mov ecx, dword [ecx]
cmp byte [edx + ecx + 4], bl
jne 0x4ed0c0
push str.Invalid_or_empty_zero_width_assertion.
lea ecx, [esp + 0x48]
call fcn.00404f45
mov dword [esp + 0xdc], 5
jmp 0x4ecb8b
cmp dword [esp + 0x18], 0xfffffffc
jne 0x4ed2ad
mov edx, dword [esi]
mov eax, dword [edx + 0x13c]
mov ebp, dword [esp + 0x2c]
add eax, ebp
cmp dword [eax], 0x11
je 0x4ed1ca
push 0x110
push 0x11
push ebp
mov ecx, esi
call fcn.004e7520
mov ecx, dword [esi]
mov edx, dword [ecx + 0x13c]
mov dword [esp + 0x2c], edx
mov edx, dword [ecx + 0x140]
sub edx, dword [ecx + 0x13c]
sub edx, eax
add edx, dword [esp + 0x2c]
mov dword [eax + 8], edx
mov edx, dword [esi]
mov eax, dword [edx + 0x13c]
add eax, ebp
add eax, dword [eax + 4]
mov eax, dword [eax]
cmp eax, 0x1b
je 0x4ed2ad
test eax, eax
je 0x4ed2ad
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], bl
je 0x4ed186
sub eax, ebx
mov dword [edi], eax
mov ecx, dword [esi + 4]
movzx edx, byte [eax]
mov ecx, dword [ecx]
cmp byte [edx + ecx + 4], bl
jne 0x4ed174
push str.A_repetition_operator_cannot_be_applied_to_a_zero_width_assertion.
lea ecx, [esp + 0xb8]
call fcn.00404f45
mov ecx, dword [edi]
sub ecx, dword [esi + 0x5c]
lea eax, [esp + 0xb4]
push eax
push ecx
push 0xd
mov ecx, esi
mov dword [esp + 0xe8], 8
call fcn.004e9840
lea ecx, [esp + 0xb4]
call fcn.0040125d
jmp 0x4ed362
mov ecx, dword [eax + 8]
cmp dword [eax + ecx], 0x11
jne 0x4ed232
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], bl
je 0x4ed1f7
sub eax, ebx
mov dword [edi], eax
mov ecx, dword [esi + 4]
movzx edx, byte [eax]
mov ecx, dword [ecx]
cmp byte [edx + ecx + 4], bl
jne 0x4ed1e5
push str.More_than_one_alternation_operator__was_encountered_inside_a_conditional_expression.
lea ecx, [esp + 0x48]
call fcn.00404f45
mov ecx, dword [edi]
sub ecx, dword [esi + 0x5c]
lea eax, [esp + 0x44]
push eax
push ecx
push 2
mov ecx, esi
mov dword [esp + 0xe8], 6
call fcn.004e9840
lea ecx, [esp + 0x44]
call fcn.0040125d
jmp 0x4ed362
add eax, dword [eax + 4]
cmp dword [eax], 0x1b
jne 0x4ed142
cmp dword [eax + 8], 0x270f
jne 0x4ed142
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], bl
je 0x4ed272
lea ecx, [ecx]
sub eax, ebx
mov dword [edi], eax
mov ecx, dword [esi + 4]
movzx edx, byte [eax]
mov ecx, dword [ecx]
cmp byte [edx + ecx + 4], bl
jne 0x4ed260
push str.Alternation_operators_are_not_allowed_inside_a_DEFINE_block.
lea ecx, [esp + 0x48]
call fcn.00404f45
mov ecx, dword [edi]
sub ecx, dword [esi + 0x5c]
lea eax, [esp + 0x44]
push eax
push ecx
push 2
mov ecx, esi
mov dword [esp + 0xe8], 7
call fcn.004e9840
lea ecx, [esp + 0x44]
call fcn.0040125d
jmp 0x4ed362
push 0x10
push ebx
mov ecx, esi
call fcn.004e7eb0
mov ebp, dword [esp + 0x18]
mov dword [eax + 8], ebp
mov edx, dword [esi]
mov ecx, dword [edx + 0x18]
mov edx, dword [esp + 0x30]
shr ecx, 0x14
and cl, bl
mov byte [eax + 0xc], cl
mov eax, dword [esp + 0x3c]
mov cl, byte [esp + 0x1f]
mov dword [esi + 0x78], eax
mov eax, dword [esi + 0x70]
mov dword [esi + 0x74], edx
mov byte [esi + 0x7c], cl
cmp eax, dword [esi + 0x68]
jbe 0x4ed2eb
mov dword [esi + 0x68], eax
mov edx, dword [esp + 0x40]
mov eax, dword [esp + 0x38]
mov dword [esi + 0x6c], edx
mov dword [esi + 0x70], eax
test ebp, ebp
jle 0x4ed32f
mov eax, dword [esi]
test dword [eax + 0x18], 0x800000
je 0x4ed320
mov edi, dword [edi]
sub edi, dword [esi + 0x5c]
lea ecx, [ebp - 1]
push ecx
lea ecx, [eax + 0x148]
dec edi
call fcn.004d4cd0
mov dword [eax + 4], edi
cmp ebp, 0x20
jge 0x4ed32f
lea ecx, [ebp - 1]
mov edx, ebx
shl edx, cl
or dword [esi + 0x18], edx
mov al, bl
jmp 0x4ed364
lea eax, [edx - 1]
mov dword [edi], eax
movzx edx, byte [eax]
mov ecx, dword [ecx]
cmp byte [edx + ecx + 4], bl
je 0x4ed355
sub eax, ebx
mov dword [edi], eax
movzx ecx, byte [eax]
mov edx, dword [esi + 4]
mov edx, dword [edx]
cmp byte [ecx + edx + 4], bl
jne 0x4ed343
sub eax, dword [esi + 0x5c]
push eax
push 0x14
mov ecx, esi
call fcn.004ea5c0
xor al, al
mov ecx, dword [esp + 0xd4]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebp
pop ebx
mov ecx, dword [esp + 0xbc]
xor ecx, esp
call fcn.0049d196
add esp, 0xcc
ret
sub esp, 0x14
push ebx
push esi
mov esi, ecx
mov ebx, 1
add dword [esi + 0x64], ebx
mov eax, dword [esi + 0x64]
cmp eax, dword [esi + 0x60]
jne 0x4efbda
sub eax, dword [esi + 0x5c]
push eax
push 8
call fcn.004ea5c0
pop esi
xor al, al
pop ebx
add esp, 0x14
ret
mov ecx, dword [esi]
mov edx, dword [ecx + 0x18]
push ebp
push edi
test edx, 0x203
je 0x4efbf9
mov edi, edx
and edi, 0x1003
cmp edi, 0x1001
jne 0x4efc16
mov edi, dword [esi + 4]
movzx ebp, byte [eax]
mov edi, dword [edi]
cmp byte [edi + ebp + 4], 8
jne 0x4efc16
pop edi
pop ebp
mov ecx, esi
pop esi
pop ebx
add esp, 0x14
jmp 0x4ec110
xor edi, edi
test edx, 0x400000
jne 0x4efc50
add dword [esi + 0x68], ebx
test dword [ecx + 0x18], 0x800000
mov edi, dword [esi + 0x68]
je 0x4efc50
sub eax, dword [esi + 0x5c]
add ecx, 0x148
sub eax, ebx
mov dword [esp + 0x1c], eax
lea eax, [esp + 0x1c]
push eax
mov dword [esp + 0x24], 0
call fcn.004daff0
push 0x10
push 0
mov ecx, esi
call fcn.004e7eb0
mov dword [eax + 8], edi
mov ecx, dword [esi]
mov edx, dword [ecx + 0x18]
shr edx, 0x14
and dl, bl
mov byte [eax + 0xc], dl
mov ecx, dword [esi]
sub eax, dword [ecx + 0x13c]
mov edx, dword [ecx + 0x140]
mov ebx, eax
mov eax, dword [esi + 0x78]
mov dword [esp + 0x1c], eax
mov eax, dword [ecx + 0x13c]
sub edx, eax
add edx, 3
and edx, 0xfffffffc
add edx, eax
mov dword [ecx + 0x140], edx
mov eax, dword [esi]
mov ecx, dword [eax + 0x140]
sub ecx, dword [eax + 0x13c]
mov dl, byte [esi + 0x7c]
mov dword [esi + 0x78], ecx
mov ebp, dword [eax + 0x18]
mov eax, dword [esi + 0x6c]
mov dword [esp + 0x14], ebx
mov byte [esp + 0x13], dl
mov byte [esi + 0x7c], 0
mov dword [esp + 0x18], eax
mov dword [esi + 0x6c], 0xffffffff
lea esp, [esp]
mov ecx, dword [esi + 0x64]
cmp ecx, dword [esi + 0x60]
je 0x4efce3
mov edx, dword [esi + 0x58]
mov ecx, esi
call edx
test al, al
jne 0x4efcd0
push ebx
mov ecx, esi
call fcn.004e9a30
test al, al
je 0x4efd48
cmp byte [esi + 0x7c], 0
je 0x4efd0f
mov ebx, ebp
push 0xc
shr ebx, 0x14
push 0x1c
mov ecx, esi
and bl, 1
call fcn.004e7eb0
mov byte [eax + 8], bl
mov ebx, dword [esp + 0x14]
mov eax, dword [esi]
mov dword [eax + 0x18], ebp
mov eax, ebp
shr eax, 0x14
and al, 1
cmp byte [esi + 0xc], al
je 0x4efd23
mov byte [esi + 0xc], al
mov eax, dword [esp + 0x18]
mov ecx, dword [esi + 0x60]
mov dl, byte [esp + 0x13]
mov dword [esi + 0x6c], eax
mov eax, dword [esi + 0x64]
mov byte [esi + 0x7c], dl
cmp eax, ecx
jne 0x4efd52
sub ecx, dword [esi + 0x5c]
push ecx
push 8
mov ecx, esi
call fcn.004ea5c0
pop edi
pop ebp
pop esi
xor al, al
pop ebx
add esp, 0x14
ret
test edi, edi
je 0x4efd78
mov ecx, dword [esi]
test dword [ecx + 0x18], 0x800000
je 0x4efd78
sub eax, dword [esi + 0x5c]
lea edx, [edi - 1]
push edx
add ecx, 0x148
mov ebp, eax
call fcn.004d4cd0
mov dword [eax + 4], ebp
inc dword [esi + 0x64]
push 0x10
push 1
mov ecx, esi
call fcn.004e7eb0
mov dword [eax + 8], edi
mov ecx, dword [esi]
mov edx, dword [ecx + 0x18]
shr edx, 0x14
and dl, 1
mov byte [eax + 0xc], dl
mov eax, dword [esp + 0x1c]
lea ecx, [edi - 1]
mov dword [esi + 0x74], ebx
mov dword [esi + 0x78], eax
cmp ecx, 0x1e
ja 0x4efdb3
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