Function at 0x60b140
Capabilities:
Parse credit card information

Disassembly:
push ebp
mov ebp, esp
add esp, 0xffffff8c
push ebx
push esi
push edi
mov eax, dword [ebp + 0x10]
mov esi, dword [eax]
mov eax, dword [ebp + 0x14]
mov edx, dword [eax]
mov dword [ebp - 0x20], edx
xor edi, edi
test byte [ebp + 9], 2
setne al
and eax, 1
mov dword [ebp - 0x14], eax
mov edx, dword [ebp - 0x14]
xor edx, 1
mov dword [ebp - 0x18], edx
xor ebx, ebx
mov ecx, dword [ebp - 0x20]
test byte [ebp + 8], 8
mov bl, byte [ecx]
je 0x60af94
mov eax, dword [ebp + 0x20]
mov edx, dword [eax + 0xc]
test byte [edx + ebx], 1
jne 0x60bc07
cmp ebx, 0x23
jne 0x60af94
inc dword [ebp - 0x20]
mov ecx, dword [ebp - 0x20]
xor ebx, ebx
mov bl, byte [ecx]
test ebx, ebx
je 0x60bc07
cmp ebx, 0xa
jne 0x60af78
jmp 0x60bc07
mov eax, ebx
cmp eax, 0x2e
jg 0x60afd5
je 0x60b034
cmp eax, 0x29
jg 0x60afc0
je 0x60b007
sub eax, 1
jb 0x60b007
sub eax, 0x23
je 0x60b029
sub eax, 4
je 0x60b790
jmp 0x60bb56
sub eax, 0x2a
je 0x60b40a
dec eax
je 0x60b418
jmp 0x60bb56
cmp eax, 0x5e
jg 0x60aff6
je 0x60b01e
sub eax, 0x3f
je 0x60b428
sub eax, 0x1c
je 0x60b03f
dec eax
je 0x60bae1
jmp 0x60bb56
sub eax, 0x7b
je 0x60b3c3
dec eax
je 0x60b007
jmp 0x60bb56
mov edx, dword [ebp + 0x10]
mov eax, 1
mov dword [edx], esi
mov ecx, dword [ebp + 0x14]
mov ebx, dword [ebp - 0x20]
mov dword [ecx], ebx
jmp 0x60bc19
xor edi, edi
mov byte [esi], 0xd
inc esi
jmp 0x60bc07
xor edi, edi
mov byte [esi], 0xe
inc esi
jmp 0x60bc07
mov edi, esi
mov byte [esi], 0xf
inc esi
jmp 0x60bc07
mov edi, esi
mov byte [esi], 0x35
inc esi
inc dword [ebp - 0x20]
mov eax, dword [ebp - 0x20]
xor ebx, ebx
mov bl, byte [eax]
cmp ebx, 0x5e
jne 0x60b067
mov dword [ebp - 0x28], 1
inc dword [ebp - 0x20]
mov eax, dword [ebp - 0x20]
xor ebx, ebx
mov bl, byte [eax]
jmp 0x60b06c
xor eax, eax
mov dword [ebp - 0x28], eax
xor edx, edx
lea ecx, [ebp - 0x74]
mov dword [ebp - 0x2c], edx
mov dword [ebp - 0x30], 0xffffffff
push 0x20
push 0
push ecx
call fcn.00600073
add esp, 0xc
test ebx, ebx
jne 0x60b09a
mov eax, dword [ebp + 0x18]
mov dword [eax], 0x628ec9
jmp 0x60bc0f
cmp ebx, 0x5c
jne 0x60b20e
mov edx, dword [ebp + 0x20]
push edx
push 1
mov ecx, dword [ebp + 8]
push ecx
mov eax, dword [ebp + 0xc]
mov edx, dword [eax]
push edx
mov ecx, dword [ebp + 0x18]
push ecx
lea eax, [ebp - 0x20]
push eax
call fcn.0060aa54
add esp, 0x18
mov ebx, eax
mov eax, ebx
neg eax
cmp eax, 3
jne 0x60b0d8
mov ebx, 8
jmp 0x60b20e
test ebx, ebx
jge 0x60b20e
mov eax, dword [ebp + 0x20]
neg ebx
mov edx, dword [eax + 8]
add ebx, 0xfffffffc
mov dword [ebp - 0x38], edx
cmp ebx, 5
mov dword [ebp - 0x2c], 0xa
ja case.default.0x60b0fe
jmp dword [ebx*4 + 0x60b105]
xor ebx, ebx
lea eax, [ebp - 0x74]
mov dword [ebp - 0x54], eax
mov edx, dword [ebp - 0x38]
mov eax, edx
mov dl, byte [eax]
mov ecx, dword [ebp - 0x54]
or byte [ecx], dl
inc ebx
inc dword [ebp - 0x54]
inc eax
cmp ebx, 0x20
jl 0x60b12a
jmp 0x60b349
mov edx, dword [ebp - 0x38]
xor ebx, ebx
mov ecx, edx
lea eax, [ebp - 0x74]
mov dword [ebp - 0x54], ecx
mov edx, dword [ebp - 0x54]
mov cl, byte [edx]
not cl
or byte [eax], cl
inc ebx
inc eax
inc dword [ebp - 0x54]
cmp ebx, 0x20
jl 0x60b14d
jmp 0x60b349
xor ebx, ebx
lea eax, [ebp - 0x74]
mov dword [ebp - 0x54], eax
mov edx, dword [ebp - 0x38]
mov eax, edx
mov dl, byte [eax]
mov ecx, dword [ebp - 0x54]
or dl, byte [eax + 0x20]
inc eax
or byte [ecx], dl
inc dword [ebp - 0x54]
inc ebx
cmp ebx, 0x20
jl 0x60b172
jmp 0x60b349
mov edx, dword [ebp - 0x38]
xor ebx, ebx
mov ecx, edx
lea eax, [ebp - 0x74]
mov dword [ebp - 0x54], ecx
mov edx, dword [ebp - 0x54]
mov cl, byte [edx]
mov edx, dword [ebp - 0x54]
or cl, byte [edx + 0x20]
not cl
or byte [eax], cl
inc ebx
inc eax
inc dword [ebp - 0x54]
cmp ebx, 0x20
jl 0x60b198
jmp 0x60b349
xor ebx, ebx
lea eax, [ebp - 0x74]
mov dword [ebp - 0x54], eax
mov edx, dword [ebp - 0x38]
lea eax, [edx + 0x40]
mov dl, byte [eax]
mov ecx, dword [ebp - 0x54]
or byte [ecx], dl
inc ebx
inc dword [ebp - 0x54]
inc eax
cmp ebx, 0x20
jl 0x60b1c4
jmp 0x60b349
mov edx, dword [ebp - 0x38]
xor ebx, ebx
lea eax, [ebp - 0x74]
lea ecx, [edx + 0x40]
mov dword [ebp - 0x54], ecx
mov edx, dword [ebp - 0x54]
mov cl, byte [edx]
not cl
or byte [eax], cl
inc ebx
inc eax
inc dword [ebp - 0x54]
cmp ebx, 0x20
jl 0x60b1e8
jmp 0x60b349
mov eax, dword [ebp + 0x18]
mov dword [eax], 0x628ef3
jmp 0x60bc0f
mov ecx, dword [ebp - 0x20]
xor eax, eax
mov al, byte [ecx + 1]
cmp eax, 0x2d
jne 0x60b2fe
mov edx, dword [ebp - 0x20]
xor ecx, ecx
mov cl, byte [edx + 2]
cmp ecx, 0x5d
je 0x60b2fe
add dword [ebp - 0x20], 2
mov eax, dword [ebp - 0x20]
movzx eax, byte [eax]
test eax, eax
jne 0x60b24c
mov edx, dword [ebp + 0x18]
mov dword [edx], str.missing_terminating___for_character_class
jmp 0x60bc0f
cmp eax, 0x5c
jne 0x60b28f
mov ecx, dword [ebp + 0x20]
push ecx
push 1
mov ecx, dword [ebp + 8]
push ecx
mov eax, dword [ebp + 0xc]
mov edx, dword [eax]
push edx
mov ecx, dword [ebp + 0x18]
push ecx
lea eax, [ebp - 0x20]
push eax
call fcn.0060aa54
add esp, 0x18
test eax, eax
jge 0x60b28f
cmp eax, 0xfffffffd
jne 0x60b281
mov eax, 8
jmp 0x60b28f
mov edx, dword [ebp + 0x18]
mov dword [edx], str.invalid_escape_sequence_in_character_class
jmp 0x60bc0f
cmp ebx, eax
jle 0x60b2a1
mov ecx, dword [ebp + 0x18]
mov dword [ecx], str.range_out_of_order_in_character_class
jmp 0x60bc0f
cmp eax, ebx
jl 0x60b349
mov ecx, ebx
and ecx, 7
mov dl, 1
shl dl, cl
mov ecx, ebx
test ecx, ecx
jns 0x60b2bb
add ecx, 7
sar ecx, 3
or byte [ebp + ecx - 0x74], dl
test byte [ebp + 8], 1
je 0x60b2f1
mov edx, dword [ebp + 0x20]
mov edx, dword [edx + 4]
xor ecx, ecx
mov cl, byte [edx + ebx]
mov dword [ebp - 0x3c], ecx
mov ecx, dword [ebp - 0x3c]
and ecx, 7
mov dl, 1
shl dl, cl
mov ecx, dword [ebp - 0x3c]
test ecx, ecx
jns 0x60b2ea
add ecx, 7
sar ecx, 3
or byte [ebp + ecx - 0x74], dl
inc dword [ebp - 0x2c]
mov dword [ebp - 0x30], ebx
inc ebx
cmp eax, ebx
jge 0x60b2a9
jmp 0x60b349
mov ecx, ebx
mov al, 1
and ecx, 7
mov edx, ebx
shl al, cl
test edx, edx
jns 0x60b310
add edx, 7
sar edx, 3
or byte [ebp + edx - 0x74], al
test byte [ebp + 8], 1
je 0x60b343
mov ecx, dword [ebp + 0x20]
xor edx, edx
mov eax, dword [ecx + 4]
mov dl, byte [eax + ebx]
mov al, 1
mov ebx, edx
mov ecx, ebx
mov edx, ebx
and ecx, 7
shl al, cl
test edx, edx
jns 0x60b33c
add edx, 7
sar edx, 3
or byte [ebp + edx - 0x74], al
inc dword [ebp - 0x2c]
mov dword [ebp - 0x30], ebx
inc dword [ebp - 0x20]
mov eax, dword [ebp - 0x20]
xor ebx, ebx
mov bl, byte [eax]
cmp ebx, 0x5d
jne 0x60b088
cmp dword [ebp - 0x2c], 1
jne 0x60b387
cmp dword [ebp - 0x30], 0
jl 0x60b387
cmp dword [ebp - 0x28], 0
je 0x60b374
mov byte [esi - 1], 0x11
jmp 0x60b37c
mov byte [esi - 1], 0x10
mov byte [esi], 1
inc esi
mov al, byte [ebp - 0x30]
mov byte [esi], al
inc esi
jmp 0x60bc07
cmp dword [ebp - 0x28], 0
je 0x60b3ac
xor ebx, ebx
mov eax, esi
mov dword [ebp - 0x54], eax
lea eax, [ebp - 0x74]
mov dl, byte [eax]
mov ecx, dword [ebp - 0x54]
not dl
mov byte [ecx], dl
inc eax
inc dword [ebp - 0x54]
inc ebx
cmp ebx, 0x20
jl 0x60b397
jmp 0x60b3bb
push 0x20
lea eax, [ebp - 0x74]
push eax
push esi
call fcn.005ffe8c
add esp, 0xc
add esi, 0x20
jmp 0x60bc07
mov edx, dword [ebp + 0x20]
push edx
mov ecx, dword [ebp - 0x20]
inc ecx
push ecx
call fcn.0060ac04
add esp, 8
test eax, eax
je 0x60bb56
mov eax, dword [ebp + 0x20]
lea ecx, [ebp - 0xc]
push eax
lea eax, [ebp - 8]
mov edx, dword [ebp + 0x18]
push edx
push ecx
push eax
mov edx, dword [ebp - 0x20]
inc edx
push edx
call fcn.0060aca0
add esp, 0x14
mov dword [ebp - 0x20], eax
mov ecx, dword [ebp + 0x18]
cmp dword [ecx], 0
jne 0x60bc0f
jmp 0x60b434
xor eax, eax
mov dword [ebp - 8], eax
mov dword [ebp - 0xc], 0xffffffff
jmp 0x60b434
mov dword [ebp - 8], 1
mov dword [ebp - 0xc], 0xffffffff
jmp 0x60b434
xor edx, edx
mov dword [ebp - 8], edx
mov dword [ebp - 0xc], 1
test edi, edi
jne 0x60b446
mov ecx, dword [ebp + 0x18]
mov dword [ecx], str.nothing_to_repeat
jmp 0x60bc0f
mov eax, dword [ebp - 0x20]
xor edx, edx
mov dl, byte [eax + 1]
cmp edx, 0x3f
jne 0x60b45e
mov ecx, dword [ebp - 0x18]
mov dword [ebp - 4], ecx
inc dword [ebp - 0x20]
jmp 0x60b464
mov eax, dword [ebp - 0x14]
mov dword [ebp - 4], eax
cmp dword [ebp - 0xc], 0
jne 0x60b471
mov esi, edi
jmp 0x60b789
xor eax, eax
mov al, byte [edi]
cmp eax, 0x10
jne 0x60b4a0
xor eax, eax
mov al, byte [edi + 1]
cmp eax, 1
jne 0x60b48d
xor ebx, ebx
mov esi, edi
mov bl, byte [edi + 2]
jmp 0x60b497
xor ebx, ebx
mov bl, byte [edi + eax + 1]
dec byte [edi + 1]
dec esi
xor eax, eax
jmp 0x60b4d7
xor edx, edx
mov dl, byte [edi]
cmp edx, 0x11
jne 0x60b4bc
mov eax, 9
xor ebx, ebx
mov bl, byte [edi + 1]
mov esi, edi
jmp 0x60b4d7
xor edx, edx
mov dl, byte [edi]
cmp edx, 0xa
jl 0x60b4ce
cmp edx, 0xf
jne 0x60b5c2
mov eax, 0x12
mov ebx, edx
mov esi, edi
add dword [ebp - 4], eax
cmp dword [ebp - 8], 0
jne 0x60b526
cmp dword [ebp - 0xc], 0xffffffff
jne 0x60b4f3
mov al, byte [ebp - 4]
add al, 0x12
mov byte [esi], al
inc esi
jmp 0x60b5ba
cmp dword [ebp - 0xc], 1
jne 0x60b507
mov dl, byte [ebp - 4]
add dl, 0x16
mov byte [esi], dl
inc esi
jmp 0x60b5ba
mov cl, byte [ebp - 4]
add cl, 0x18
mov byte [esi], cl
inc esi
mov ecx, dword [ebp - 0xc]
sar ecx, 8
mov byte [esi], cl
inc esi
mov al, byte [ebp - 0xc]
and al, 0xff
mov byte [esi], al
inc esi
jmp 0x60b5ba
cmp dword [ebp - 8], 1
jne 0x60b53d
cmp dword [ebp - 0xc], 0xffffffff
jne 0x60b53d
mov dl, byte [ebp - 4]
add dl, 0x14
mov byte [esi], dl
inc esi
jmp 0x60b5ba
cmp dword [ebp - 8], 1
je 0x60b55b
add al, 0x1a
mov byte [esi], al
inc esi
mov ecx, dword [ebp - 8]
sar ecx, 8
mov byte [esi], cl
inc esi
mov al, byte [ebp - 8]
and al, 0xff
mov byte [esi], al
inc esi
jmp 0x60b57c
xor edx, edx
mov dl, byte [edi]
cmp edx, 0x10
jne 0x60b572
cmp edi, esi
jne 0x60b56d
add esi, 2
jmp 0x60b57c
inc byte [edi + 1]
jmp 0x60b57c
xor ecx, ecx
mov cl, byte [edi]
cmp ecx, 0x11
jne 0x60b57c
inc esi
cmp dword [ebp - 0xc], 0
jge 0x60b58f
mov byte [esi], bl
inc esi
mov al, byte [ebp - 4]
add al, 0x12
mov byte [esi], al
inc esi
jmp 0x60b5ba
mov edx, dword [ebp - 0xc]
cmp edx, dword [ebp - 8]
je 0x60b5ba
mov byte [esi], bl
inc esi
mov ecx, dword [ebp - 8]
sub dword [ebp - 0xc], ecx
mov al, byte [ebp - 4]
add al, 0x18
mov byte [esi], al
inc esi
mov edx, dword [ebp - 0xc]
sar edx, 8
mov byte [esi], dl
inc esi
mov cl, byte [ebp - 0xc]
and cl, 0xff
mov byte [esi], cl
inc esi
mov byte [esi], bl
inc esi
jmp 0x60b789
xor eax, eax
mov al, byte [edi]
cmp eax, 0x35
je 0x60b5d8
xor edx, edx
mov dl, byte [edi]
cmp edx, 0x36
jne 0x60b661
cmp dword [ebp - 8], 0
jne 0x60b5f1
cmp dword [ebp - 0xc], 0xffffffff
jne 0x60b5f1
mov al, byte [ebp - 4]
add al, 0x2d
mov byte [esi], al
inc esi
jmp 0x60b789
cmp dword [ebp - 8], 1
jne 0x60b60b
cmp dword [ebp - 0xc], 0xffffffff
jne 0x60b60b
mov dl, byte [ebp - 4]
add dl, 0x2f
mov byte [esi], dl
inc esi
jmp 0x60b789
cmp dword [ebp - 8], 0
jne 0x60b625
cmp dword [ebp - 0xc], 1
jne 0x60b625
mov cl, byte [ebp - 4]
add cl, 0x31
mov byte [esi], cl
inc esi
jmp 0x60b789
mov al, byte [ebp - 4]
add al, 0x33
mov byte [esi], al
inc esi
mov edx, dword [ebp - 8]
sar edx, 8
mov byte [esi], dl
inc esi
mov cl, byte [ebp - 8]
and cl, 0xff
mov byte [esi], cl
inc esi
cmp dword [ebp - 0xc], 0xffffffff
jne 0x60b64a
xor edi, edi
mov dword [ebp - 0xc], edi
mov eax, dword [ebp - 0xc]
sar eax, 8
mov byte [esi], al
inc esi
mov dl, byte [ebp - 0xc]
and dl, 0xff
mov byte [esi], dl
inc esi
jmp 0x60b789
xor ecx, ecx
mov cl, byte [edi]
cmp ecx, 0x45
jge 0x60b680
xor eax, eax
mov al, byte [edi]
cmp eax, 0x40
je 0x60b680
xor edx, edx
mov dl, byte [edi]
cmp edx, 0x41
jne 0x60b77b
xor ecx, ecx
mov eax, esi
sub eax, edi
mov dword [ebp - 0x40], ecx
mov dword [ebp - 0x44], eax
cmp dword [ebp - 0xc], 0xffffffff
jne 0x60b6b5
mov eax, edi
xor edx, edx
xor ecx, ecx
mov dl, byte [eax + 1]
mov cl, byte [eax + 2]
shl edx, 8
add edx, ecx
add eax, edx
xor edx, edx
mov dl, byte [eax]
cmp edx, 0x38
jne 0x60b694
mov ecx, esi
sub ecx, eax
mov dword [ebp - 0x40], ecx
cmp dword [ebp - 8], 0
jle 0x60b6f0
cmp dword [ebp - 0xc], 0xffffffff
je 0x60b6c9
mov eax, dword [ebp - 0xc]
cmp eax, dword [ebp - 8]
jne 0x60b6f0
mov ebx, 1
cmp ebx, dword [ebp - 8]
jge 0x60b765
mov eax, dword [ebp - 0x44]
push eax
push edi
push esi
call fcn.005ffe8c
add esp, 0xc
add esi, dword [ebp - 0x44]
inc ebx
cmp ebx, dword [ebp - 8]
jl 0x60b6d7
jmp 0x60b765
cmp dword [ebp - 8], 0
jne 0x60b710
mov edx, dword [ebp - 0x44]
lea ecx, [edi + 1]
push edx
push edi
push ecx
call fcn.005fffc1
mov al, byte [ebp - 4]
add esp, 0xc
add al, 0x43
inc esi
mov byte [edi], al
inc edi
mov ebx, 1
cmp ebx, dword [ebp - 8]
jge 0x60b731
mov eax, dword [ebp - 0x44]
push eax
push edi
push esi
call fcn.005ffe8c
add esp, 0xc
add esi, dword [ebp - 0x44]
inc ebx
cmp ebx, dword [ebp - 8]
jl 0x60b71a
cmp dword [ebp - 8], 0
jle 0x60b73c
mov ebx, dword [ebp - 8]
jmp 0x60b741
mov ebx, 1
cmp ebx, dword [ebp - 0xc]
jge 0x60b765
mov al, byte [ebp - 4]
add al, 0x43
mov byte [esi], al
inc esi
mov edx, dword [ebp - 0x44]
push edx
push edi
push esi
call fcn.005ffe8c
add esp, 0xc
add esi, dword [ebp - 0x44]
inc ebx
cmp ebx, dword [ebp - 0xc]
jl 0x60b746
cmp dword [ebp - 0xc], 0xffffffff
jne 0x60b789
mov cl, byte [ebp - 4]
add cl, 0x39
mov ebx, dword [ebp - 0x40]
neg ebx
mov byte [esi + ebx], cl
jmp 0x60b789
mov eax, dword [ebp + 0x18]
mov dword [eax], str.internal_error:_unexpected_repeat
jmp 0x60bc0f
xor edi, edi
jmp 0x60bc07
mov eax, dword [ebp + 8]
mov dword [ebp - 0x34], 0xffffffff
inc dword [ebp - 0x20]
mov edx, dword [ebp - 0x20]
xor ecx, ecx
mov cl, byte [edx]
cmp ecx, 0x3f
jne 0x60b9f4
inc dword [ebp - 0x20]
mov edx, dword [ebp - 0x20]
xor ecx, ecx
mov cl, byte [edx]
add ecx, 0xffffffdf
cmp ecx, 0x1d
ja case.0x60b7c9.33
mov cl, byte [ecx + 0x60b7d0]
jmp dword [ecx*4 + 0x60b7ee]
inc dword [ebp - 0x20]
jmp 0x60b816
inc dword [ebp - 0x20]
mov eax, dword [ebp - 0x20]
movzx eax, byte [eax]
cmp eax, 0x29
jne 0x60b813
jmp 0x60bc07
mov ebx, 0x45
inc dword [ebp - 0x20]
jmp 0x60ba16
mov ebx, 0x41
inc dword [ebp - 0x20]
mov edx, dword [ebp - 0x20]
xor ecx, ecx
mov cl, byte [edx]
mov edx, dword [ebp + 0x20]
mov edx, dword [edx + 0xc]
test byte [edx + ecx], 4
je 0x60b88a
mov ecx, dword [ebp - 0x20]
xor edx, edx
mov dl, byte [ecx]
add edx, 0xffffffd0
mov dword [ebp - 0x34], edx
jmp 0x60b873
mov edx, dword [ebp - 0x20]
mov ecx, dword [ebp - 0x34]
add ecx, ecx
movzx edx, byte [edx]
lea ecx, [ecx + ecx*4]
add ecx, edx
add ecx, 0xffffffd0
mov dword [ebp - 0x34], ecx
inc dword [ebp - 0x20]
mov ecx, dword [ebp - 0x20]
xor edx, edx
mov dl, byte [ecx]
cmp edx, 0x29
jne 0x60b85d
inc dword [ebp - 0x20]
jmp 0x60ba16
dec dword [ebp - 0x20]
jmp 0x60ba16
mov ebx, 0x3b
inc dword [ebp - 0x20]
jmp 0x60ba16
mov ebx, 0x3c
inc dword [ebp - 0x20]
jmp 0x60ba16
inc dword [ebp - 0x20]
mov edx, dword [ebp - 0x20]
mov cl, byte [edx]
sub cl, 0x21
je 0x60b8cd
sub cl, 0x1c
je 0x60b8c0
jmp 0x60b8da
mov ebx, 0x3d
inc dword [ebp - 0x20]
jmp 0x60ba16
mov ebx, 0x3e
inc dword [ebp - 0x20]
jmp 0x60ba16
mov eax, dword [ebp + 0x18]
mov dword [eax], 0x628fcd
jmp 0x60bc0f
mov ebx, 0x40
inc dword [ebp - 0x20]
jmp 0x60ba16
xor eax, eax
lea edx, [ebp - 0x48]
mov dword [ebp - 0x4c], eax
mov dword [ebp - 0x48], eax
mov dword [ebp - 0x50], edx
jmp 0x60b985
mov ecx, dword [ebp - 0x20]
inc dword [ebp - 0x20]
movzx edi, byte [ecx]
cmp edi, 0x69
jg 0x60b92b
je 0x60b944
sub edi, 0x2d
je 0x60b93c
sub edi, 0x28
je 0x60b964
sub edi, 3
je 0x60b96f
jmp 0x60b977
sub edi, 0x6d
je 0x60b94c
sub edi, 6
je 0x60b954
sub edi, 5
je 0x60b95c
jmp 0x60b977
lea eax, [ebp - 0x4c]
mov dword [ebp - 0x50], eax
jmp 0x60b985
mov edx, dword [ebp - 0x50]
or dword [edx], 1
jmp 0x60b985
mov ecx, dword [ebp - 0x50]
or dword [ecx], 2
jmp 0x60b985
mov edi, dword [ebp - 0x50]
or dword [edi], 4
jmp 0x60b985
mov eax, dword [ebp - 0x50]
or dword [eax], 8
jmp 0x60b985
mov edx, dword [ebp - 0x50]
or dword [edx], 0x200
jmp 0x60b985
mov ecx, dword [ebp - 0x50]
or dword [ecx], 0x40
jmp 0x60b985
mov eax, dword [ebp + 0x18]
mov dword [eax], 0x628fee
jmp 0x60bc0f
mov edx, dword [ebp - 0x20]
xor ecx, ecx
mov cl, byte [edx]
cmp ecx, 0x29
je 0x60b9a1
mov edi, dword [ebp - 0x20]
xor eax, eax
mov al, byte [edi]
cmp eax, 0x3a
jne 0x60b90a
mov eax, dword [ebp + 8]
mov edx, dword [ebp - 0x4c]
not edx
or eax, dword [ebp - 0x48]
mov ecx, dword [ebp - 0x20]
and eax, edx
xor edx, edx
mov dl, byte [ecx]
cmp edx, 0x29
jne 0x60b9ea
test byte [ebp + 9], 0x20
je 0x60b9e0
mov ecx, dword [ebp + 8]
mov edx, eax
and edx, 7
and ecx, 7
cmp ecx, edx
je 0x60b9e0
mov byte [esi], 0xc
inc esi
mov edx, dword [ebp + 0x1c]
mov ecx, eax
and ecx, 7
mov dword [edx], ecx
mov byte [esi], cl
inc esi
mov dword [ebp + 8], eax
xor edi, edi
jmp 0x60bc07
mov ebx, 0x45
inc dword [ebp - 0x20]
jmp 0x60ba16
mov edx, dword [ebp + 0xc]
inc dword [edx]
mov ecx, dword [edx]
cmp ecx, 0x63
jle 0x60ba0e
mov eax, dword [ebp + 0x18]
mov dword [eax], str.too_many_capturing_parenthesized_sub_patterns
jmp 0x60bc0f
mov edx, dword [ebp + 0xc]
mov ebx, dword [edx]
add ebx, 0x45
cmp ebx, 0x40
jl 0x60ba1f
mov edi, esi
jmp 0x60ba21
xor edi, edi
mov byte [esi], bl
mov dword [ebp - 0x1c], esi
mov edx, dword [ebp + 0x20]
cmp ebx, 0x3d
push edx
mov ecx, dword [ebp - 0x34]
push ecx
je 0x60ba3c
cmp ebx, 0x3e
je 0x60ba3c
xor edx, edx
jmp 0x60ba41
mov edx, 1
push edx
lea edx, [ebp - 0x20]
mov ecx, dword [ebp + 0x18]
push ecx
lea ecx, [ebp - 0x1c]
push edx
push ecx
mov edx, dword [ebp + 0xc]
push edx
mov edx, eax
mov ecx, dword [ebp + 8]
and edx, 7
and ecx, 7
cmp ecx, edx
je 0x60ba66
and eax, 7
jmp 0x60ba69
or eax, 0xffffffff
push eax
mov ecx, dword [ebp + 8]
or ecx, 0x2000
push ecx
call fcn.0060bc20
add esp, 0x24
test eax, eax
je 0x60bc0f
cmp ebx, 0x41
jne 0x60babb
xor edx, edx
mov eax, esi
xor ecx, ecx
xor ebx, ebx
mov cl, byte [eax + 1]
mov bl, byte [eax + 2]
shl ecx, 8
inc edx
or ecx, ebx
add eax, ecx
xor ecx, ecx
mov cl, byte [eax]
cmp ecx, 0x38
jne 0x60ba8d
cmp edx, 2
jle 0x60babb
mov eax, dword [ebp + 0x18]
mov dword [eax], str.conditional_group_contains_more_than_two_branches
jmp 0x60bc0f
mov esi, dword [ebp - 0x1c]
mov eax, dword [ebp - 0x20]
xor edx, edx
mov dl, byte [eax]
cmp edx, 0x29
je 0x60bc07
mov ecx, dword [ebp + 0x18]
mov dword [ecx], str.missing__
jmp 0x60bc0f
mov edi, dword [ebp - 0x20]
mov dword [ebp - 0x24], edi
mov eax, dword [ebp + 0x20]
push eax
push 0
mov edx, dword [ebp + 8]
push edx
mov ecx, dword [ebp + 0xc]
mov eax, dword [ecx]
push eax
mov edx, dword [ebp + 0x18]
push edx
lea ecx, [ebp - 0x20]
push ecx
call fcn.0060aa54
add esp, 0x18
mov ebx, eax
test ebx, ebx
jge 0x60bb4b
mov eax, ebx
neg eax
cmp eax, 0xc
jl 0x60bb29
mov edi, esi
mov byte [esi], 0x36
inc esi
neg bl
add bl, 0xf4
mov byte [esi], bl
inc esi
jmp 0x60bc07
mov eax, ebx
neg eax
cmp eax, 3
jle 0x60bb3f
mov edx, ebx
neg edx
cmp edx, 0xa
jge 0x60bb3f
mov edi, esi
jmp 0x60bb41
xor edi, edi
neg bl
mov byte [esi], bl
inc esi
jmp 0x60bc07
mov eax, dword [ebp - 0x24]
mov ebx, 0x5c
mov dword [ebp - 0x20], eax
mov edi, esi
mov byte [esi], 0x10
add esi, 2
xor eax, eax
mov dword [ebp - 0x10], eax
test byte [ebp + 8], 8
je 0x60bb93
mov edx, dword [ebp + 0x20]
mov ecx, dword [edx + 0xc]
test byte [ecx + ebx], 1
jne 0x60bbd2
cmp ebx, 0x23
jne 0x60bb93
inc dword [ebp - 0x20]
mov eax, dword [ebp - 0x20]
xor ebx, ebx
mov bl, byte [eax]
test ebx, ebx
je 0x60bb8d
cmp ebx, 0xa
jne 0x60bb7a
test ebx, ebx
je 0x60bbf5
jmp 0x60bbd2
cmp ebx, 0x5c
jne 0x60bbcc
mov eax, dword [ebp - 0x20]
mov dword [ebp - 0x24], eax
mov edx, dword [ebp + 0x20]
push edx
push 0
mov ecx, dword [ebp + 8]
push ecx
mov eax, dword [ebp + 0xc]
mov edx, dword [eax]
push edx
mov ecx, dword [ebp + 0x18]
push ecx
lea eax, [ebp - 0x20]
push eax
call fcn.0060aa54
add esp, 0x18
mov ebx, eax
test ebx, ebx
jge 0x60bbcc
mov eax, dword [ebp - 0x24]
mov dword [ebp - 0x20], eax
jmp 0x60bbf5
mov byte [esi], bl
inc esi
inc dword [ebp - 0x10]
cmp dword [ebp - 0x10], 0xff
jge 0x60bbf5
inc dword [ebp - 0x20]
xor ebx, ebx
mov edx, dword [ebp - 0x20]
mov eax, dword [ebp + 0x20]
mov bl, byte [edx]
mov edx, dword [eax + 0xc]
test byte [edx + ebx], 0x80
je 0x60bb63
mov cl, byte [ebp - 0x10]
mov byte [edi + 1], cl
cmp dword [ebp - 0x10], 0xff
jge 0x60bc07
dec dword [ebp - 0x20]
inc dword [ebp - 0x20]
jmp 0x60af56
mov eax, dword [ebp + 0x14]
mov edx, dword [ebp - 0x20]
mov dword [eax], edx
xor eax, eax
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret