Function at 0x5270c5
Capabilities:
Parse credit card information

Disassembly:
push ebp
mov ebp, esp
add esp, 0xffffff48
push ebx
push esi
push edi
xor eax, eax
mov dword [ebp - 0x20], eax
xor edx, edx
mov dword [ebp - 0x24], edx
mov ecx, dword [ebp + 0x10]
mov esi, dword [ecx]
mov eax, dword [ebp + 0x14]
mov edx, dword [eax]
mov dword [ebp - 0x2c], edx
xor ecx, ecx
mov dword [ebp - 0x34], ecx
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
or ecx, 0xffffffff
mov dword [ebp - 0x1c], ecx
mov eax, dword [ebp + 0x20]
mov dword [eax], ecx
mov edx, dword [ebp + 0x24]
xor eax, eax
mov dword [edx], eax
mov edx, dword [ebp - 0x2c]
xor ebx, ebx
mov bl, byte [edx]
test byte [ebp + 8], 8
je 0x527153
mov eax, dword [ebp + 0x28]
mov edx, dword [eax + 0xc]
test byte [edx + ebx], 1
jne 0x528106
cmp ebx, 0x23
jne 0x527153
inc dword [ebp - 0x2c]
mov ecx, dword [ebp - 0x2c]
xor ebx, ebx
mov bl, byte [ecx]
test ebx, ebx
je 0x528106
cmp ebx, 0xa
jne 0x527137
jmp 0x528106
mov eax, ebx
cmp eax, 0x2e
jg 0x527194
je 0x5271f9
cmp eax, 0x29
jg 0x52717f
je 0x5271c6
sub eax, 1
jb 0x5271c6
sub eax, 0x23
je 0x5271eb
sub eax, 4
je 0x527b92
jmp 0x52803d
sub eax, 0x2a
je 0x5276ca
dec eax
je 0x5276d8
jmp 0x52803d
cmp eax, 0x5e
jg 0x5271b5
je 0x5271dd
sub eax, 0x3f
je 0x5276e8
sub eax, 0x1c
je 0x527205
dec eax
je 0x527fb0
jmp 0x52803d
sub eax, 0x7b
je 0x52768c
dec eax
je 0x5271c6
jmp 0x52803d
mov edx, dword [ebp + 0x10]
mov dword [edx], esi
mov ecx, dword [ebp + 0x14]
mov eax, dword [ebp - 0x2c]
mov dword [ecx], eax
mov eax, 1
jmp 0x528118
xor edx, edx
mov dword [ebp - 0x34], edx
mov byte [esi], 0xd
inc esi
jmp 0x528106
xor ecx, ecx
mov dword [ebp - 0x34], ecx
mov byte [esi], 0xe
inc esi
jmp 0x528106
mov dword [ebp - 0x34], esi
mov byte [esi], 0xf
inc esi
jmp 0x528106
mov dword [ebp - 0x34], esi
mov byte [esi], 0x35
inc esi
inc dword [ebp - 0x2c]
mov eax, dword [ebp - 0x2c]
xor ebx, ebx
mov bl, byte [eax]
cmp ebx, 0x5e
jne 0x52722e
mov dword [ebp - 0x38], 1
inc dword [ebp - 0x2c]
mov eax, dword [ebp - 0x2c]
xor ebx, ebx
mov bl, byte [eax]
jmp 0x527233
xor eax, eax
mov dword [ebp - 0x38], eax
xor edx, edx
mov dword [ebp - 0x3c], edx
mov dword [ebp - 0x40], 0xffffffff
push 0x20
push 0
lea ecx, [ebp - 0xb8]
push ecx
call fcn.0054c150
add esp, 0xc
test ebx, ebx
jne 0x527264
mov eax, dword [ebp + 0x18]
mov dword [eax], 0x56dd52
jmp 0x52810e
cmp ebx, 0x5b
jne 0x527397
mov edx, dword [ebp - 0x2c]
cmp byte [edx + 1], 0x3a
je 0x52728c
mov ecx, dword [ebp - 0x2c]
cmp byte [ecx + 1], 0x2e
je 0x52728c
mov eax, dword [ebp - 0x2c]
cmp byte [eax + 1], 0x3d
jne 0x527397
push dword [ebp + 0x28]
lea edx, [ebp - 0x30]
push edx
push dword [ebp - 0x2c]
call fcn.0052702b
test eax, eax
je 0x527397
xor ecx, ecx
mov dword [ebp - 0x50], ecx
mov eax, dword [ebp + 0x28]
mov edx, dword [eax + 8]
mov dword [ebp - 0x5c], edx
mov ecx, dword [ebp - 0x2c]
cmp byte [ecx + 1], 0x3a
je 0x5272c8
mov eax, dword [ebp + 0x18]
mov dword [eax], str.POSIX_collating_elements_are_not_supported
jmp 0x52810e
add dword [ebp - 0x2c], 2
mov edx, dword [ebp - 0x2c]
cmp byte [edx], 0x5e
jne 0x5272de
mov dword [ebp - 0x50], 1
inc dword [ebp - 0x2c]
mov ecx, dword [ebp - 0x30]
sub ecx, dword [ebp - 0x2c]
push ecx
push dword [ebp - 0x2c]
call fcn.00527074
mov dword [ebp - 0x54], eax
cmp dword [ebp - 0x54], 0
jge 0x527304
mov eax, dword [ebp + 0x18]
mov dword [eax], str.unknown_POSIX_class_name
jmp 0x52810e
test byte [ebp + 8], 1
je 0x527315
cmp dword [ebp - 0x54], 2
jg 0x527315
xor edx, edx
mov dword [ebp - 0x54], edx
mov ecx, dword [ebp - 0x54]
lea ecx, [ecx + ecx*2]
mov dword [ebp - 0x54], ecx
xor eax, eax
mov dword [ebp - 0x58], eax
mov edx, dword [ebp - 0x54]
add edx, dword [ebp - 0x58]
mov ecx, dword [edx*4 + 0x56d788]
mov dword [ebp - 0x60], ecx
cmp dword [ebp - 0x60], 0
jl 0x527384
cmp dword [ebp - 0x50], 0
je 0x52735f
xor ebx, ebx
lea edx, [ebp - 0xb8]
mov eax, dword [ebp - 0x5c]
mov ecx, dword [ebp - 0x60]
add eax, ecx
mov cl, byte [eax]
not cl
or byte [edx], cl
inc ebx
inc edx
inc eax
cmp ebx, 0x20
jl 0x52734f
jmp 0x52737b
xor ebx, ebx
lea eax, [ebp - 0xb8]
mov edx, dword [ebp - 0x5c]
mov ecx, dword [ebp - 0x60]
add edx, ecx
mov cl, byte [edx]
or byte [eax], cl
inc ebx
inc eax
inc edx
cmp ebx, 0x20
jl 0x52736f
inc dword [ebp - 0x58]
cmp dword [ebp - 0x58], 3
jl 0x527323
mov eax, dword [ebp - 0x30]
inc eax
mov dword [ebp - 0x2c], eax
mov dword [ebp - 0x3c], 0xa
jmp 0x527614
cmp ebx, 0x5c
jne 0x5274e0
push dword [ebp + 0x28]
push 1
push dword [ebp + 8]
mov eax, dword [ebp + 0xc]
push dword [eax]
push dword [ebp + 0x18]
lea edx, [ebp - 0x2c]
push edx
call fcn.00526bb6
mov ebx, eax
mov eax, ebx
neg eax
cmp eax, 3
jne 0x5273ce
mov ebx, 8
jmp 0x5274e0
test ebx, ebx
jge 0x5274e0
mov eax, dword [ebp + 0x28]
mov edx, dword [eax + 8]
mov dword [ebp - 0x64], edx
mov dword [ebp - 0x3c], 0xa
neg ebx
add ebx, 0xfffffffc
cmp ebx, 5
ja case.default.0x5273f4
jmp dword [ebx*4 + 0x5273fb]
xor ebx, ebx
lea edx, [ebp - 0xb8]
mov eax, dword [ebp - 0x64]
add eax, 0x40
mov cl, byte [eax]
or byte [edx], cl
inc ebx
inc edx
inc eax
cmp ebx, 0x20
jl 0x527421
jmp 0x527614
xor ebx, ebx
lea eax, [ebp - 0xb8]
mov edx, dword [ebp - 0x64]
add edx, 0x40
mov cl, byte [edx]
not cl
or byte [eax], cl
inc ebx
inc eax
inc edx
cmp ebx, 0x20
jl 0x527440
jmp 0x527614
xor ebx, ebx
lea edx, [ebp - 0xb8]
mov eax, dword [ebp - 0x64]
add eax, 0xa0
mov cl, byte [eax]
or byte [edx], cl
inc ebx
inc edx
inc eax
cmp ebx, 0x20
jl 0x527463
jmp 0x527614
xor ebx, ebx
lea eax, [ebp - 0xb8]
mov edx, dword [ebp - 0x64]
add edx, 0xa0
mov cl, byte [edx]
not cl
or byte [eax], cl
inc ebx
inc eax
inc edx
cmp ebx, 0x20
jl 0x527485
jmp 0x527614
xor ebx, ebx
lea edx, [ebp - 0xb8]
mov eax, dword [ebp - 0x64]
mov cl, byte [eax]
or byte [edx], cl
inc ebx
inc edx
inc eax
cmp ebx, 0x20
jl 0x5274a3
jmp 0x527614
xor ebx, ebx
lea eax, [ebp - 0xb8]
mov edx, dword [ebp - 0x64]
mov cl, byte [edx]
not cl
or byte [eax], cl
inc ebx
inc eax
inc edx
cmp ebx, 0x20
jl 0x5274bf
jmp 0x527614
mov eax, dword [ebp + 0x18]
mov dword [eax], str.invalid_escape_sequence_in_character_class
jmp 0x52810e
mov eax, dword [ebp - 0x2c]
cmp byte [eax + 1], 0x2d
jne 0x5275c3
mov edx, dword [ebp - 0x2c]
cmp byte [edx + 2], 0x5d
je 0x5275c3
add dword [ebp - 0x2c], 2
mov ecx, dword [ebp - 0x2c]
xor eax, eax
mov al, byte [ecx]
test eax, eax
jne 0x527517
mov edx, dword [ebp + 0x18]
mov dword [edx], str.missing_terminating___for_character_class
jmp 0x52810e
cmp eax, 0x5c
jne 0x527556
mov ecx, dword [ebp - 0x2c]
mov dword [ebp - 0x68], ecx
push dword [ebp + 0x28]
push 1
push dword [ebp + 8]
mov eax, dword [ebp + 0xc]
push dword [eax]
push dword [ebp + 0x18]
lea edx, [ebp - 0x2c]
push edx
call fcn.00526bb6
test eax, eax
jge 0x527556
cmp eax, 0xfffffffd
jne 0x52754b
mov eax, 8
jmp 0x527556
mov edx, dword [ebp - 0x68]
add edx, 0xfffffffe
mov dword [ebp - 0x2c], edx
jmp 0x5275c3
cmp ebx, eax
jle 0x527568
mov ecx, dword [ebp + 0x18]
mov dword [ecx], str.range_out_of_order_in_character_class
jmp 0x52810e
cmp eax, ebx
jl 0x527614
mov ecx, ebx
and ecx, 7
mov dl, 1
shl dl, cl
mov ecx, ebx
test ecx, ecx
jns 0x527582
add ecx, 7
sar ecx, 3
or byte [ebp + ecx - 0xb8], dl
test byte [ebp + 8], 1
je 0x5275b6
mov edx, dword [ebp + 0x28]
mov edx, dword [edx + 4]
movzx edi, byte [edx + ebx]
mov ecx, edi
and ecx, 7
mov dl, 1
shl dl, cl
test edi, edi
jns 0x5275ac
add edi, 7
sar edi, 3
or byte [ebp + edi - 0xb8], dl
inc dword [ebp - 0x3c]
mov dword [ebp - 0x40], ebx
inc ebx
cmp eax, ebx
jge 0x527570
jmp 0x527614
mov ecx, ebx
and ecx, 7
mov al, 1
shl al, cl
mov edx, ebx
test edx, edx
jns 0x5275d5
add edx, 7
sar edx, 3
or byte [ebp + edx - 0xb8], al
test byte [ebp + 8], 1
je 0x52760e
mov eax, dword [ebp + 0x28]
mov edx, dword [eax + 4]
xor ecx, ecx
mov cl, byte [edx + ebx]
mov ebx, ecx
mov ecx, ebx
and ecx, 7
mov al, 1
shl al, cl
mov edx, ebx
test edx, edx
jns 0x527604
add edx, 7
sar edx, 3
or byte [ebp + edx - 0xb8], al
inc dword [ebp - 0x3c]
mov dword [ebp - 0x40], ebx
inc dword [ebp - 0x2c]
mov eax, dword [ebp - 0x2c]
xor ebx, ebx
mov bl, byte [eax]
cmp ebx, 0x5d
jne 0x527252
cmp dword [ebp - 0x3c], 1
jne 0x527652
cmp dword [ebp - 0x40], 0
jl 0x527652
cmp dword [ebp - 0x38], 0
je 0x52763f
mov byte [esi - 1], 0x11
jmp 0x527647
mov byte [esi - 1], 0x10
mov byte [esi], 1
inc esi
mov al, byte [ebp - 0x40]
mov byte [esi], al
inc esi
jmp 0x528106
cmp dword [ebp - 0x38], 0
je 0x527672
xor ebx, ebx
mov edx, esi
lea eax, [ebp - 0xb8]
mov cl, byte [eax]
not cl
mov byte [edx], cl
inc ebx
inc edx
inc eax
cmp ebx, 0x20
jl 0x527662
jmp 0x527684
push 0x20
lea eax, [ebp - 0xb8]
push eax
push esi
call fcn.0054c0e0
add esp, 0xc
add esi, 0x20
jmp 0x528106
push dword [ebp + 0x28]
mov edx, dword [ebp - 0x2c]
inc edx
push edx
call fcn.00526d4d
test eax, eax
je 0x52803d
push dword [ebp + 0x28]
push dword [ebp + 0x18]
lea ecx, [ebp - 0x10]
push ecx
lea eax, [ebp - 0xc]
push eax
mov edx, dword [ebp - 0x2c]
inc edx
push edx
call fcn.00526dd1
mov dword [ebp - 0x2c], eax
mov ecx, dword [ebp + 0x18]
cmp dword [ecx], 0
jne 0x52810e
jmp 0x5276f4
xor eax, eax
mov dword [ebp - 0xc], eax
mov dword [ebp - 0x10], 0xffffffff
jmp 0x5276f4
mov dword [ebp - 0xc], 1
mov dword [ebp - 0x10], 0xffffffff
jmp 0x5276f4
xor edx, edx
mov dword [ebp - 0xc], edx
mov dword [ebp - 0x10], 1
cmp dword [ebp - 0x34], 0
jne 0x527708
mov ecx, dword [ebp + 0x18]
mov dword [ecx], str.nothing_to_repeat
jmp 0x52810e
mov eax, dword [ebp - 0x2c]
cmp byte [eax + 1], 0x3f
jne 0x52771c
mov edx, dword [ebp - 0x18]
mov dword [ebp - 4], edx
inc dword [ebp - 0x2c]
jmp 0x527722
mov ecx, dword [ebp - 0x14]
mov dword [ebp - 4], ecx
mov eax, dword [ebp - 0x34]
cmp byte [eax], 0x10
jne 0x52777e
mov edx, dword [ebp - 0x34]
xor ecx, ecx
mov cl, byte [edx + 1]
mov dword [ebp - 0x6c], ecx
cmp dword [ebp - 0xc], 0
jne 0x527743
mov eax, dword [ebp + 0x20]
mov edx, dword [ebp - 0x1c]
mov dword [eax], edx
mov ecx, dword [ebp - 0xc]
dec ecx
mov eax, dword [ebp + 0x24]
add dword [eax], ecx
cmp dword [ebp - 0x6c], 1
jne 0x52775f
mov edx, dword [ebp - 0x34]
xor ebx, ebx
mov bl, byte [edx + 2]
mov esi, dword [ebp - 0x34]
jmp 0x527772
mov eax, dword [ebp - 0x34]
mov edx, dword [ebp - 0x6c]
xor ebx, ebx
mov bl, byte [eax + edx + 1]
mov eax, dword [ebp - 0x34]
dec byte [eax + 1]
dec esi
xor edx, edx
mov dword [ebp - 8], edx
jmp 0x5277c7
mov ecx, dword [ebp - 0x34]
xor eax, eax
mov al, byte [ecx]
cmp eax, 0x11
jne 0x52779e
mov dword [ebp - 8], 9
mov edx, dword [ebp - 0x34]
xor ebx, ebx
mov bl, byte [edx + 1]
mov esi, dword [ebp - 0x34]
jmp 0x5277c7
mov eax, dword [ebp - 0x34]
xor edx, edx
mov dl, byte [eax]
cmp edx, 0xa
jl 0x5277b6
mov ecx, dword [ebp - 0x34]
cmp byte [ecx], 0xf
jne 0x5278c9
mov dword [ebp - 8], 0x12
mov eax, dword [ebp - 0x34]
xor ebx, ebx
mov bl, byte [eax]
mov esi, dword [ebp - 0x34]
cmp dword [ebp - 0x10], 0
je 0x527b88
mov eax, dword [ebp - 8]
add dword [ebp - 4], eax
cmp dword [ebp - 0xc], 0
jne 0x527824
cmp dword [ebp - 0x10], 0xffffffff
jne 0x5277f1
mov dl, byte [ebp - 4]
add dl, 0x12
mov byte [esi], dl
inc esi
jmp 0x5278c1
cmp dword [ebp - 0x10], 1
jne 0x527805
mov cl, byte [ebp - 4]
add cl, 0x16
mov byte [esi], cl
inc esi
jmp 0x5278c1
mov al, byte [ebp - 4]
add al, 0x18
mov byte [esi], al
inc esi
mov edx, dword [ebp - 0x10]
sar edx, 8
mov byte [esi], dl
inc esi
mov cl, byte [ebp - 0x10]
and cl, 0xff
mov byte [esi], cl
inc esi
jmp 0x5278c1
cmp dword [ebp - 0xc], 1
jne 0x52783d
cmp dword [ebp - 0x10], 0xffffffff
jne 0x52783d
mov al, byte [ebp - 4]
add al, 0x14
mov byte [esi], al
inc esi
jmp 0x5278c1
cmp dword [ebp - 0xc], 1
je 0x52785f
mov dl, byte [ebp - 8]
add dl, 0x1a
mov byte [esi], dl
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 0x527882
mov edx, dword [ebp - 0x34]
cmp byte [edx], 0x10
jne 0x527879
cmp esi, dword [ebp - 0x34]
jne 0x527871
add esi, 2
jmp 0x527882
mov ecx, dword [ebp - 0x34]
inc byte [ecx + 1]
jmp 0x527882
mov eax, dword [ebp - 0x34]
cmp byte [eax], 0x11
jne 0x527882
inc esi
cmp dword [ebp - 0x10], 0
jge 0x527896
mov byte [esi], bl
inc esi
mov dl, byte [ebp - 4]
add dl, 0x12
mov byte [esi], dl
inc esi
jmp 0x5278c1
mov ecx, dword [ebp - 0x10]
cmp ecx, dword [ebp - 0xc]
je 0x5278c1
mov byte [esi], bl
inc esi
mov eax, dword [ebp - 0xc]
sub dword [ebp - 0x10], eax
mov dl, byte [ebp - 4]
add dl, 0x18
mov byte [esi], dl
inc esi
mov ecx, dword [ebp - 0x10]
sar ecx, 8
mov byte [esi], cl
inc esi
mov al, byte [ebp - 0x10]
and al, 0xff
mov byte [esi], al
inc esi
mov byte [esi], bl
inc esi
jmp 0x527b88
mov edx, dword [ebp - 0x34]
cmp byte [edx], 0x35
je 0x5278dd
mov ecx, dword [ebp - 0x34]
cmp byte [ecx], 0x36
jne 0x527974
cmp dword [ebp - 0x10], 0
jne 0x5278eb
mov esi, dword [ebp - 0x34]
jmp 0x527b88
cmp dword [ebp - 0xc], 0
jne 0x527904
cmp dword [ebp - 0x10], 0xffffffff
jne 0x527904
mov al, byte [ebp - 4]
add al, 0x2d
mov byte [esi], al
inc esi
jmp 0x527b88
cmp dword [ebp - 0xc], 1
jne 0x52791e
cmp dword [ebp - 0x10], 0xffffffff
jne 0x52791e
mov dl, byte [ebp - 4]
add dl, 0x2f
mov byte [esi], dl
inc esi
jmp 0x527b88
cmp dword [ebp - 0xc], 0
jne 0x527938
cmp dword [ebp - 0x10], 1
jne 0x527938
mov cl, byte [ebp - 4]
add cl, 0x31
mov byte [esi], cl
inc esi
jmp 0x527b88
mov al, byte [ebp - 4]
add al, 0x33
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
cmp dword [ebp - 0x10], 0xffffffff
jne 0x52795d
xor eax, eax
mov dword [ebp - 0x10], eax
mov edx, dword [ebp - 0x10]
sar edx, 8
mov byte [esi], dl
inc esi
mov cl, byte [ebp - 0x10]
and cl, 0xff
mov byte [esi], cl
inc esi
jmp 0x527b88
mov eax, dword [ebp - 0x34]
xor edx, edx
mov dl, byte [eax]
cmp edx, 0x47
jge 0x52799c
mov ecx, dword [ebp - 0x34]
xor eax, eax
mov al, byte [ecx]
cmp eax, 0x41
je 0x52799c
mov edx, dword [ebp - 0x34]
xor ecx, ecx
mov cl, byte [edx]
cmp ecx, 0x42
jne 0x527b7a
xor eax, eax
mov dword [ebp - 0x70], eax
mov edx, esi
sub edx, dword [ebp - 0x34]
mov dword [ebp - 0x74], edx
xor ebx, ebx
cmp dword [ebp - 0x10], 0xffffffff
jne 0x5279df
mov eax, dword [ebp - 0x34]
mov dword [ebp - 0x78], eax
mov edx, dword [ebp - 0x78]
xor ecx, ecx
mov cl, byte [edx + 1]
shl ecx, 8
mov eax, dword [ebp - 0x78]
xor edx, edx
mov dl, byte [eax + 2]
add ecx, edx
add dword [ebp - 0x78], ecx
mov ecx, dword [ebp - 0x78]
cmp byte [ecx], 0x39
jne 0x5279b7
mov eax, esi
sub eax, dword [ebp - 0x78]
mov dword [ebp - 0x70], eax
cmp dword [ebp - 0xc], 0
jne 0x527a9a
cmp dword [ebp - 0x24], 0
jle 0x5279ff
mov edx, dword [ebp + 0x20]
mov ecx, dword [ebp - 0x1c]
mov dword [edx], ecx
mov eax, dword [ebp + 0x24]
mov edx, dword [ebp - 0x24]
sub dword [eax], edx
cmp dword [ebp - 0x10], 0
jne 0x527a0d
mov esi, dword [ebp - 0x34]
jmp 0x527b88
cmp dword [ebp - 0x10], 1
jg 0x527a37
push dword [ebp - 0x74]
push dword [ebp - 0x34]
mov eax, dword [ebp - 0x34]
inc eax
push eax
call fcn.0054c104
add esp, 0xc
inc esi
mov dl, byte [ebp - 4]
add dl, 0x44
mov ecx, dword [ebp - 0x34]
mov byte [ecx], dl
inc dword [ebp - 0x34]
jmp 0x527a95
push dword [ebp - 0x74]
push dword [ebp - 0x34]
mov eax, dword [ebp - 0x34]
add eax, 4
push eax
call fcn.0054c104
add esp, 0xc
add esi, 4
mov dl, byte [ebp - 4]
add dl, 0x44
mov ecx, dword [ebp - 0x34]
mov byte [ecx], dl
inc dword [ebp - 0x34]
mov eax, dword [ebp - 0x34]
mov byte [eax], 0x47
inc dword [ebp - 0x34]
test ebx, ebx
jne 0x527a6e
xor edx, edx
jmp 0x527a73
mov edx, dword [ebp - 0x34]
sub edx, ebx
mov dword [ebp - 0x7c], edx
mov ebx, dword [ebp - 0x34]
mov eax, dword [ebp - 0x7c]
sar eax, 8
mov edx, dword [ebp - 0x34]
mov byte [edx], al
inc dword [ebp - 0x34]
mov cl, byte [ebp - 0x7c]
and cl, 0xff
mov eax, dword [ebp - 0x34]
mov byte [eax], cl
inc dword [ebp - 0x34]
dec dword [ebp - 0x10]
jmp 0x527ac8
mov edi, 1
cmp edi, dword [ebp - 0xc]
jge 0x527abc
push dword [ebp - 0x74]
push dword [ebp - 0x34]
push esi
call fcn.0054c0e0
add esp, 0xc
add esi, dword [ebp - 0x74]
inc edi
cmp edi, dword [ebp - 0xc]
jl 0x527aa4
cmp dword [ebp - 0x10], 0
jle 0x527ac8
mov eax, dword [ebp - 0xc]
sub dword [ebp - 0x10], eax
cmp dword [ebp - 0x10], 0
jl 0x527b6b
mov edi, dword [ebp - 0x10]
dec edi
test edi, edi
jl 0x527b24
mov al, byte [ebp - 4]
add al, 0x44
mov byte [esi], al
inc esi
test edi, edi
je 0x527b0d
mov byte [esi], 0x47
inc esi
test ebx, ebx
jne 0x527af2
xor edx, edx
jmp 0x527af6
mov edx, esi
sub edx, ebx
mov dword [ebp - 0x80], edx
mov ebx, esi
mov eax, dword [ebp - 0x80]
sar eax, 8
mov byte [esi], al
inc esi
mov dl, byte [ebp - 0x80]
and dl, 0xff
mov byte [esi], dl
inc esi
push dword [ebp - 0x74]
push dword [ebp - 0x34]
push esi
call fcn.0054c0e0
add esp, 0xc
add esi, dword [ebp - 0x74]
dec edi
test edi, edi
jge 0x527ada
test ebx, ebx
je 0x527b88
mov edx, esi
sub edx, ebx
inc edx
mov eax, esi
sub eax, edx
xor ecx, ecx
mov cl, byte [eax + 1]
shl ecx, 8
movzx edi, byte [eax + 2]
add ecx, edi
test ecx, ecx
jne 0x527b47
xor edi, edi
jmp 0x527b4b
mov edi, ebx
sub edi, ecx
mov ebx, edi
mov byte [esi], 0x39
inc esi
mov ecx, edx
sar ecx, 8
mov byte [eax + 1], cl
mov byte [esi], cl
inc esi
and dl, 0xff
mov byte [eax + 2], dl
mov byte [esi], dl
inc esi
test ebx, ebx
jne 0x527b28
jmp 0x527b88
mov al, byte [ebp - 4]
add al, 0x3a
mov edx, dword [ebp - 0x70]
neg edx
mov byte [esi + edx], al
jmp 0x527b88
mov eax, dword [ebp + 0x18]
mov dword [eax], str.internal_error:_unexpected_repeat
jmp 0x52810e
xor ecx, ecx
mov dword [ebp - 0x34], ecx
jmp 0x528106
mov eax, dword [ebp + 8]
mov dword [ebp - 0x44], eax
xor edx, edx
mov dword [ebp - 0x48], edx
inc dword [ebp - 0x2c]
mov ecx, dword [ebp - 0x2c]
cmp byte [ecx], 0x3f
jne 0x527e50
inc dword [ebp - 0x2c]
mov eax, dword [ebp - 0x2c]
xor edx, edx
mov dl, byte [eax]
cmp edx, 0x3c
jg 0x527bde
je 0x527cd6
sub edx, 0x21
je 0x527cc9
sub edx, 2
je 0x527bfc
sub edx, 5
je 0x527c1e
sub edx, 0x12
je 0x527c11
jmp 0x527d29
sub edx, 0x3d
je 0x527cbc
dec edx
je 0x527d10
sub edx, 0x14
je 0x527d1d
jmp 0x527d29
inc dword [ebp - 0x2c]
jmp 0x527c04
inc dword [ebp - 0x2c]
mov ecx, dword [ebp - 0x2c]
cmp byte [ecx], 0x29
jne 0x527c01
jmp 0x528106
mov ebx, 0x47
inc dword [ebp - 0x2c]
jmp 0x527e8e
mov ebx, 0x42
inc dword [ebp - 0x2c]
mov eax, dword [ebp - 0x2c]
xor edx, edx
mov dl, byte [eax]
mov ecx, dword [ebp + 0x28]
mov eax, dword [ecx + 0xc]
test byte [eax + edx], 4
je 0x527cb4
mov edx, dword [ebp - 0x2c]
xor ecx, ecx
mov cl, byte [edx]
add ecx, 0xffffffd0
mov dword [ebp - 0x90], ecx
jmp 0x527c68
mov eax, dword [ebp - 0x90]
add eax, eax
lea eax, [eax + eax*4]
mov edx, dword [ebp - 0x2c]
xor ecx, ecx
mov cl, byte [edx]
add eax, ecx
add eax, 0xffffffd0
mov dword [ebp - 0x90], eax
inc dword [ebp - 0x2c]
mov eax, dword [ebp - 0x2c]
cmp byte [eax], 0x29
jne 0x527c4b
cmp dword [ebp - 0x90], 0
jne 0x527c8a
mov edx, dword [ebp + 0x18]
mov dword [edx], str.invalid_condition____0_
jmp 0x52810e
inc dword [ebp - 0x2c]
mov byte [esi + 3], 0x43
mov ecx, dword [ebp - 0x90]
sar ecx, 8
mov byte [esi + 4], cl
mov al, byte [ebp - 0x90]
and al, 0xff
mov byte [esi + 5], al
mov dword [ebp - 0x48], 3
jmp 0x527e8e
dec dword [ebp - 0x2c]
jmp 0x527e8e
mov ebx, 0x3c
inc dword [ebp - 0x2c]
jmp 0x527e8e
mov ebx, 0x3d
inc dword [ebp - 0x2c]
jmp 0x527e8e
inc dword [ebp - 0x2c]
mov eax, dword [ebp - 0x2c]
mov dl, byte [eax]
sub dl, 0x21
je 0x527cf5
sub dl, 0x1c
jne 0x527d02
mov ebx, 0x3e
inc dword [ebp - 0x2c]
jmp 0x527e8e
mov ebx, 0x3f
inc dword [ebp - 0x2c]
jmp 0x527e8e
mov eax, dword [ebp + 0x18]
mov dword [eax], 0x56de87
jmp 0x52810e
mov ebx, 0x41
inc dword [ebp - 0x2c]
jmp 0x527e8e
mov byte [esi], 0x37
inc esi
inc dword [ebp - 0x2c]
jmp 0x528106
xor eax, eax
mov dword [ebp - 0x88], eax
mov dword [ebp - 0x84], eax
lea edx, [ebp - 0x84]
mov dword [ebp - 0x8c], edx
jmp 0x527ddc
mov ecx, dword [ebp - 0x2c]
inc dword [ebp - 0x2c]
xor eax, eax
mov al, byte [ecx]
cmp eax, 0x69
jg 0x527d6a
je 0x527d89
sub eax, 0x2d
je 0x527d7b
sub eax, 0x28
je 0x527db5
sub eax, 3
je 0x527dc3
jmp 0x527dce
sub eax, 0x6d
je 0x527d94
sub eax, 6
je 0x527d9f
sub eax, 5
je 0x527daa
jmp 0x527dce
lea edx, [ebp - 0x88]
mov dword [ebp - 0x8c], edx
jmp 0x527ddc
mov ecx, dword [ebp - 0x8c]
or dword [ecx], 1
jmp 0x527ddc
mov eax, dword [ebp - 0x8c]
or dword [eax], 2
jmp 0x527ddc
mov edx, dword [ebp - 0x8c]
or dword [edx], 4
jmp 0x527ddc
mov ecx, dword [ebp - 0x8c]
or dword [ecx], 8
jmp 0x527ddc
mov eax, dword [ebp - 0x8c]
or dword [eax], 0x200
jmp 0x527ddc
mov edx, dword [ebp - 0x8c]
or dword [edx], 0x40
jmp 0x527ddc
mov ecx, dword [ebp + 0x18]
mov dword [ecx], 0x56dea8
jmp 0x52810e
mov eax, dword [ebp - 0x2c]
cmp byte [eax], 0x29
je 0x527df0
mov edx, dword [ebp - 0x2c]
cmp byte [edx], 0x3a
jne 0x527d48
mov ecx, dword [ebp + 8]
or ecx, dword [ebp - 0x84]
mov eax, dword [ebp - 0x88]
not eax
and ecx, eax
mov dword [ebp - 0x44], ecx
mov edx, dword [ebp - 0x2c]
cmp byte [edx], 0x29
jne 0x527e46
test byte [ebp + 0xb], 8
je 0x527e36
mov ecx, dword [ebp + 8]
and ecx, 7
mov eax, dword [ebp - 0x44]
and eax, 7
cmp ecx, eax
je 0x527e36
mov byte [esi], 0xc
inc esi
mov edx, dword [ebp - 0x44]
and edx, 7
mov ecx, dword [ebp + 0x1c]
mov dword [ecx], edx
mov byte [esi], dl
inc esi
mov eax, dword [ebp - 0x44]
mov dword [ebp + 8], eax
xor ecx, ecx
mov dword [ebp - 0x34], ecx
jmp 0x528106
mov ebx, 0x47
inc dword [ebp - 0x2c]
jmp 0x527e8e
mov eax, dword [ebp + 0xc]
inc dword [eax]
mov edx, dword [eax]
cmp edx, 0x96
jle 0x527e86
mov ebx, 0xde
mov byte [esi + 3], 0x46
mov eax, dword [ebp + 0xc]
mov edx, dword [eax]
sar edx, 8
mov byte [esi + 4], dl
mov ecx, dword [ebp + 0xc]
mov al, byte [ecx]
and al, 0xff
mov byte [esi + 5], al
mov dword [ebp - 0x48], 3
jmp 0x527e8e
mov edx, dword [ebp + 0xc]
mov ebx, dword [edx]
add ebx, 0x47
cmp ebx, 0x41
jl 0x527e97
mov eax, esi
jmp 0x527e99
xor eax, eax
mov dword [ebp - 0x34], eax
mov byte [esi], bl
mov dword [ebp - 0x28], esi
push dword [ebp + 0x28]
lea edx, [ebp - 0x24]
push edx
lea ecx, [ebp - 0x4c]
push ecx
push dword [ebp - 0x48]
cmp ebx, 0x3e
je 0x527ebd
cmp ebx, 0x3f
je 0x527ebd
xor eax, eax
jmp 0x527ec2
mov eax, 1
push eax
push dword [ebp + 0x18]
lea edx, [ebp - 0x2c]
push edx
lea ecx, [ebp - 0x28]
push ecx
push dword [ebp + 0xc]
mov eax, dword [ebp + 8]
and eax, 7
mov edx, dword [ebp - 0x44]
and edx, 7
cmp eax, edx
je 0x527ee9
mov ecx, dword [ebp - 0x44]
and ecx, 7
jmp 0x527eec
or ecx, 0xffffffff
push ecx
mov eax, dword [ebp + 8]
or eax, 0x8000000
push eax
call fcn.00528121
test eax, eax
je 0x52810e
cmp ebx, 0x42
jne 0x527f56
mov dword [ebp - 0x94], esi
xor edx, edx
mov dword [ebp - 0x20], edx
inc dword [ebp - 0x20]
mov eax, dword [ebp - 0x94]
xor edx, edx
mov dl, byte [eax + 1]
shl edx, 8
mov ecx, dword [ebp - 0x94]
xor eax, eax
mov al, byte [ecx + 2]
or edx, eax
add dword [ebp - 0x94], edx
mov edx, dword [ebp - 0x94]
cmp byte [edx], 0x39
jne 0x527f13
cmp dword [ebp - 0x20], 2
jle 0x527f56
mov ecx, dword [ebp + 0x18]
mov dword [ecx], str.conditional_group_contains_more_than_two_branches
jmp 0x52810e
cmp dword [ebp - 0x4c], 0
jle 0x527f93
cmp ebx, 0x47
jge 0x527f76
cmp ebx, 0x41
je 0x527f76
cmp ebx, 0x3c
je 0x527f76
cmp ebx, 0x42
jne 0x527f93
cmp dword [ebp - 0x20], 2
jne 0x527f93
mov eax, dword [ebp + 0x20]
mov edx, dword [eax]
mov dword [ebp - 0x1c], edx
mov ecx, dword [ebp + 0x20]
mov eax, dword [ebp - 0x4c]
mov dword [ecx], eax
cmp ebx, 0x3c
je 0x527f93
mov edx, dword [ebp + 0x24]
mov ecx, dword [ebp - 0x24]
add dword [edx], ecx
mov esi, dword [ebp - 0x28]
mov eax, dword [ebp - 0x2c]
cmp byte [eax], 0x29
je 0x528106
mov edx, dword [ebp + 0x18]
mov dword [edx], str.missing__
jmp 0x52810e
mov ecx, dword [ebp - 0x2c]
mov dword [ebp - 0x30], ecx
push dword [ebp + 0x28]
push 0
push dword [ebp + 8]
mov eax, dword [ebp + 0xc]
push dword [eax]
push dword [ebp + 0x18]
lea edx, [ebp - 0x2c]
push edx
call fcn.00526bb6
mov ebx, eax
test ebx, ebx
jge 0x528032
mov eax, ebx
neg eax
cmp eax, 0xc
jl 0x52800d
neg ebx
add ebx, 0xfffffff4
mov dword [ebp - 0x98], ebx
mov dword [ebp - 0x34], esi
mov byte [esi], 0x36
inc esi
mov edx, dword [ebp - 0x98]
sar edx, 8
mov byte [esi], dl
inc esi
mov cl, byte [ebp - 0x98]
and cl, 0xff
mov byte [esi], cl
inc esi
jmp 0x528106
mov eax, ebx
neg eax
cmp eax, 3
jle 0x528023
mov edx, ebx
neg edx
cmp edx, 0xa
jge 0x528023
mov ecx, esi
jmp 0x528025
xor ecx, ecx
mov dword [ebp - 0x34], ecx
neg bl
mov byte [esi], bl
inc esi
jmp 0x528106
mov eax, dword [ebp - 0x30]
mov dword [ebp - 0x2c], eax
mov ebx, 0x5c
mov dword [ebp - 0x34], esi
mov byte [esi], 0x10
add esi, 2
xor edi, edi
test byte [ebp + 8], 8
je 0x528078
mov eax, dword [ebp + 0x28]
mov edx, dword [eax + 0xc]
test byte [edx + ebx], 1
jne 0x5280ae
cmp ebx, 0x23
jne 0x528078
inc dword [ebp - 0x2c]
mov ecx, dword [ebp - 0x2c]
xor ebx, ebx
mov bl, byte [ecx]
test ebx, ebx
je 0x528072
cmp ebx, 0xa
jne 0x52805f
test ebx, ebx
je 0x5280d0
jmp 0x5280ae
cmp ebx, 0x5c
jne 0x5280aa
mov eax, dword [ebp - 0x2c]
mov dword [ebp - 0x30], eax
push dword [ebp + 0x28]
push 0
push dword [ebp + 8]
mov edx, dword [ebp + 0xc]
push dword [edx]
push dword [ebp + 0x18]
lea ecx, [ebp - 0x2c]
push ecx
call fcn.00526bb6
mov ebx, eax
test ebx, ebx
jge 0x5280aa
mov eax, dword [ebp - 0x30]
mov dword [ebp - 0x2c], eax
jmp 0x5280d0
mov byte [esi], bl
inc esi
inc edi
cmp edi, 0xff
jge 0x5280d0
inc dword [ebp - 0x2c]
mov edx, dword [ebp - 0x2c]
xor ebx, ebx
mov bl, byte [edx]
mov eax, dword [ebp + 0x28]
mov edx, dword [eax + 0xc]
test byte [edx + ebx], 0x80
je 0x528048
cmp edi, 1
jle 0x5280dc
xor ecx, ecx
mov cl, byte [esi - 2]
jmp 0x5280e1
mov eax, dword [ebp + 0x20]
mov ecx, dword [eax]
mov dword [ebp - 0x1c], ecx
xor edx, edx
mov dl, byte [esi - 1]
mov eax, dword [ebp + 0x20]
mov dword [eax], edx
mov edx, dword [ebp + 0x24]
add dword [edx], edi
mov ecx, edi
mov eax, dword [ebp - 0x34]
mov byte [eax + 1], cl
cmp edi, 0xff
jge 0x528106
dec dword [ebp - 0x2c]
inc dword [ebp - 0x2c]
jmp 0x527115
mov edx, dword [ebp + 0x14]
mov ecx, dword [ebp - 0x2c]
mov dword [edx], ecx
xor eax, eax
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0x24