Function at 0x28059e20
Capabilities:
Parse credit card information

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x1cc
mov ecx, dword [ebp + 0x10]
xor eax, eax
test byte [ebp + 0x31], 4
mov ecx, dword [ecx]
push ebx
mov ebx, dword [ebp + 0x20]
mov dword [ebp - 0x10], eax
mov dword [ebp - 0x2c], eax
mov dword [ebp - 4], ecx
mov dword [ebp - 0x24], eax
je 0x28059e53
test byte [ebx + 0x40], 0x40
mov dword [ebp - 8], 1
jne 0x28059e56
mov dword [ebp - 8], eax
cmp byte [ecx + 1], 0x2d
mov dword [ebp - 0x3c], eax
jne 0x28059e67
mov edx, dword [ecx + 4]
mov dword [ebp - 0x54], edx
jmp 0x28059e6a
mov dword [ebp - 0x54], eax
cmp dword [ebp + 0x34], eax
mov dword [ebp - 0x60], eax
mov dword [ebp - 0x5c], ecx
mov dword [ebp - 0x50], 0x7fffffff
mov dword [ebp - 0x58], eax
jne 0x28059e9e
test ecx, ecx
je 0x28059e9e
mov eax, dword [ebp - 0x5c]
cmp byte [eax + 1], 0x2d
jne 0x28059e9e
push eax
push dword [ebp + 8]
call sym.perl510.dll_Perl_regnext
pop ecx
mov dword [ebp - 0x5c], eax
test eax, eax
pop ecx
jne 0x28059e83
push esi
push edi
cmp dword [ebp - 4], 0
je 0x2805c383
mov ecx, dword [ebp - 4]
mov al, byte [ecx + 1]
test al, al
je 0x2805c383
cmp ecx, dword [ebp + 0x1c]
jae 0x2805c383
movzx eax, al
cmp byte [eax + sym.perl510.dll_PL_regkind], 0x21
jne 0x28059ee9
mov eax, dword [ebp + 0x34]
inc eax
push eax
push 0
lea eax, [ebp - 0x10]
push 0
push eax
push ecx
push dword [ebp + 0xc]
push dword [ebp + 8]
call fcn.2805da97
add esp, 0x1c
mov esi, dword [ebp - 4]
mov al, byte [esi + 1]
cmp al, 0x2b
je 0x28059f79
movzx eax, al
mov al, byte [eax + 0x280b9d90]
mov cl, al
neg cl
sbb ecx, ecx
and ecx, 0x7fff0000
add ecx, 0xffff
test al, al
mov edi, ecx
je 0x28059f1d
mov esi, dword [esi + 4]
jmp 0x28059f21
movzx esi, word [esi + 2]
push dword [ebp - 4]
push dword [ebp + 8]
call sym.perl510.dll_Perl_regnext
pop ecx
test eax, eax
pop ecx
je 0x28059f60
mov dl, byte [eax + 1]
movzx ecx, dl
cmp byte [ecx + sym.perl510.dll_PL_regkind], 0x24
jne 0x28059f49
movzx ecx, word [eax + 2]
test ecx, ecx
jne 0x28059f55
cmp dl, 0x37
jne 0x28059f60
mov ecx, dword [eax + 4]
test ecx, ecx
je 0x28059f60
add ecx, esi
cmp ecx, edi
jge 0x28059f60
mov esi, ecx
push eax
jmp 0x28059f24
mov eax, dword [ebp - 4]
movzx ecx, byte [eax + 1]
cmp byte [ecx + 0x280b9d90], 0
je 0x28059f75
mov dword [eax + 4], esi
jmp 0x28059f79
mov word [eax + 2], si
mov esi, dword [ebp - 4]
mov al, byte [esi + 1]
cmp al, 0x1f
je 0x2805bf07
cmp al, 0x38
je 0x2805bf07
cmp al, 0x35
je 0x2805bf07
cmp al, 0x34
je 0x2805bda3
cmp al, 0x41
je 0x2805bda3
cmp al, 0x42
je 0x2805bda3
cmp al, 0x21
jne 0x2805a1b5
mov eax, dword [ebp + 0xc]
movzx edi, byte [esi]
cmp dword [eax + 0x60], 0
je 0x28059fe8
add esi, 4
lea eax, [esi + edi]
push eax
push esi
push dword [ebp + 8]
call sym.perl510.dll_Perl_utf8_length
push 0
push esi
push dword [ebp + 8]
mov edi, eax
call sym.perl510.dll_Perl_utf8_to_uvchr
add esp, 0x18
mov dword [ebp - 0xc], eax
jmp 0x28059fef
movzx eax, byte [esi + 4]
mov dword [ebp - 0xc], eax
add dword [ebp - 0x10], edi
test byte [ebp + 0x31], 4
je 0x2805a0a8
cmp dword [ebx + 0xc], 0xffffffff
jne 0x2805a01c
mov ecx, dword [ebx]
cmp dword [ebp - 8], 0
mov dword [ebx + 0x10], ecx
je 0x2805a014
mov eax, 0x7fffffff
jmp 0x2805a019
mov eax, dword [ebx + 4]
add eax, ecx
mov dword [ebx + 0x14], eax
mov eax, dword [ebp - 4]
push 2
movzx ecx, byte [eax]
add eax, 4
push ecx
push eax
push dword [ebx + 8]
push dword [ebp + 8]
call sym.perl510.dll_Perl_sv_catpvn_flags
mov eax, dword [ebp + 0xc]
add esp, 0x14
cmp dword [eax + 0x60], 0
je 0x2805a047
mov eax, dword [ebx + 8]
or byte [eax + 0xb], 0x20
mov eax, dword [ebx + 8]
mov ecx, dword [eax + 8]
test ecx, 0x20000000
je 0x2805a06f
test ecx, 0xe00000
je 0x2805a06f
push 0x77
push eax
push dword [ebp + 8]
call sym.perl510.dll_Perl_mg_find
add esp, 0xc
mov esi, eax
jmp 0x2805a071
xor esi, esi
test esi, esi
je 0x2805a098
cmp dword [esi + 0xc], 0
jl 0x2805a098
mov eax, dword [ebp - 4]
movzx ecx, byte [eax]
lea ecx, [ecx + eax + 4]
add eax, 4
push ecx
push eax
push dword [ebp + 8]
call sym.perl510.dll_Perl_utf8_length
add esp, 0xc
add dword [esi + 0xc], eax
mov eax, dword [ebx]
add eax, edi
and dword [ebx + 0x40], 0xfffffffc
mov dword [ebx + 0xc], eax
mov dword [ebx], eax
mov eax, dword [ebp - 0xc]
test byte [ebp + 0x31], 8
je 0x2805a15c
push 1
cmp eax, 0x100
pop esi
jae 0x2805a103
mov edx, dword [ebx + 0x4c]
mov cl, byte [edx]
test cl, 9
mov byte [ebp + 0x23], cl
jne 0x2805a105
mov ecx, eax
push esi
and ecx, 7
pop edi
shl edi, cl
movzx ecx, al
shr ecx, 3
movsx ecx, byte [ecx + edx + 8]
test ecx, edi
jne 0x2805a105
test byte [ebp + 0x23], 2
je 0x2805a103
movzx eax, byte [eax + sym.perl510.dll_PL_fold]
mov ecx, eax
push esi
and ecx, 7
pop edi
shr eax, 3
shl edi, cl
movsx eax, byte [eax + edx + 8]
test eax, edi
jne 0x2805a105
xor esi, esi
mov eax, dword [ebx + 0x4c]
push 4
add eax, 0x28
push 0
push eax
call sub.MSVCRT.dll_memset
mov eax, dword [ebx + 0x4c]
push 0x20
add eax, 8
push 0
push eax
call sub.MSVCRT.dll_memset
add esp, 0x18
test esi, esi
je 0x2805a145
mov ecx, dword [ebp - 0xc]
mov edx, dword [ebx + 0x4c]
movzx eax, cl
shr eax, 3
and ecx, 7
lea esi, [eax + edx + 8]
mov al, 1
shl al, cl
or byte [esi], al
mov eax, dword [ebx + 0x4c]
and byte [eax], 0xef
cmp dword [ebp - 0xc], 0x100
jae 0x2805a19c
mov eax, dword [ebx + 0x4c]
and byte [eax], 0xbf
jmp 0x2805a19c
test byte [ebp + 0x31], 0x10
je 0x2805a19c
cmp eax, 0x100
jae 0x2805a183
mov edx, dword [ebx + 0x4c]
movzx ecx, al
shr ecx, 3
lea esi, [ecx + edx + 8]
mov ecx, eax
mov al, 1
and ecx, 7
shl al, cl
or byte [esi], al
jmp 0x2805a189
mov eax, dword [ebx + 0x4c]
or byte [eax], 0x40
mov eax, dword [ebx + 0x4c]
and byte [eax], 0xef
push dword [ebp + 0x2c]
push dword [ebx + 0x4c]
call fcn.2805c49e
pop ecx
pop ecx
and byte [ebp + 0x31], 0xe7
push dword [ebp - 4]
push dword [ebp + 8]
call sym.perl510.dll_Perl_regnext
pop ecx
pop ecx
mov dword [ebp - 4], eax
jmp 0x28059ea0
movzx eax, al
cmp byte [eax + sym.perl510.dll_PL_regkind], 0x21
jne 0x2805a319
movzx eax, byte [esi + 4]
mov ecx, dword [ebp + 0x30]
mov dword [ebp + 0x20], eax
movzx edi, byte [esi]
and ecx, 0x400
mov dword [ebp - 0x20], ecx
je 0x2805a1f5
push dword [ebp - 8]
push dword [ebp + 0x14]
push ebx
push dword [ebp + 0xc]
push dword [ebp + 8]
call fcn.280598cf
mov eax, dword [ebp + 0x20]
add esp, 0x14
mov ecx, dword [ebp + 0xc]
cmp dword [ecx + 0x60], 0
je 0x2805a224
mov eax, dword [ebp - 4]
lea esi, [eax + 4]
lea eax, [esi + edi]
push eax
push esi
push dword [ebp + 8]
call sym.perl510.dll_Perl_utf8_length
push 0
push esi
push dword [ebp + 8]
mov edi, eax
call sym.perl510.dll_Perl_utf8_to_uvchr
add esp, 0x18
mov dword [ebp + 0x20], eax
add dword [ebp - 0x10], edi
cmp dword [ebp - 0x20], 0
je 0x2805a22f
add dword [ebx], edi
test byte [ebp + 0x31], 8
je 0x2805a2e9
push 1
cmp eax, 0x100
pop esi
jae 0x2805a27f
mov edx, dword [ebx + 0x4c]
test byte [edx], 9
jne 0x2805a281
mov ecx, eax
push esi
and ecx, 7
pop edi
shl edi, cl
movzx ecx, al
shr ecx, 3
movsx ecx, byte [ecx + edx + 8]
test ecx, edi
jne 0x2805a281
movzx eax, byte [eax + sym.perl510.dll_PL_fold]
mov ecx, eax
push esi
and ecx, 7
pop edi
shr eax, 3
shl edi, cl
movsx eax, byte [eax + edx + 8]
test eax, edi
jne 0x2805a281
xor esi, esi
mov eax, dword [ebx + 0x4c]
push 4
add eax, 0x28
push 0
push eax
call sub.MSVCRT.dll_memset
mov eax, dword [ebx + 0x4c]
push 0x20
add eax, 8
push 0
push eax
call sub.MSVCRT.dll_memset
add esp, 0x18
test esi, esi
je 0x2805a19c
mov ecx, dword [ebp + 0x20]
mov edx, dword [ebx + 0x4c]
movzx eax, cl
shr eax, 3
and ecx, 7
lea esi, [eax + edx + 8]
mov al, 1
shl al, cl
or byte [esi], al
mov eax, dword [ebx + 0x4c]
and byte [eax], 0xef
mov eax, dword [ebx + 0x4c]
or byte [eax], 2
mov eax, dword [ebp - 4]
cmp byte [eax + 1], 0x23
jne 0x2805a19c
mov eax, dword [ebx + 0x4c]
or byte [eax], 1
jmp 0x2805a19c
test byte [ebp + 0x31], 0x10
je 0x2805a19c
mov ecx, dword [ebx + 0x4c]
test byte [ecx], 2
je 0x2805a18f
cmp eax, 0x100
jae 0x2805a189
movzx edx, al
shr edx, 3
lea esi, [edx + ecx + 8]
jmp 0x2805a176
mov esi, dword [sym.imp.MSVCRT.dll_strchr]
push eax
push sym.perl510.dll_PL_varies
call esi
pop ecx
test eax, eax
pop ecx
je 0x2805ac30
mov edx, dword [ebp - 4]
mov edi, dword [ebp + 0x30]
xor esi, esi
mov dword [ebp - 0x1c], edx
mov cl, byte [edx + 1]
lea eax, [edx + 1]
mov dword [ebp - 0x14], eax
mov dword [ebp - 0x38], esi
movzx eax, cl
mov dword [ebp - 0x30], esi
mov dword [ebp - 0x28], esi
movzx eax, byte [eax + sym.perl510.dll_PL_regkind]
sub eax, 0x26
mov dword [ebp - 0x20], esi
je 0x2805a41e
dec eax
je 0x2805a3f8
dec eax
je 0x2805a380
sub eax, 4
je 0x2805c3a8
test byte [ebp + 0x31], 4
jmp 0x2805ba1e
cmp dword [ebp + 0x24], esi
jle 0x2805a39f
cmp cl, 0x29
je 0x2805a38f
cmp cl, 0x2a
jne 0x2805a39f
movzx eax, byte [edx]
cmp eax, dword [ebp + 0x24]
jne 0x2805a39f
push 1
pop eax
mov dword [ebp + 0x20], eax
jmp 0x2805a3aa
movzx eax, word [edx + 4]
mov dword [ebp + 0x20], eax
movzx eax, word [edx + 6]
push edx
mov dword [ebp - 0x34], eax
push dword [ebp + 8]
call sym.perl510.dll_Perl_regnext
mov dword [ebp - 0x4c], eax
mov eax, dword [ebp - 4]
pop ecx
cmp byte [eax + 1], 0x2b
pop ecx
jne 0x2805a3e4
cmp ebx, esi
je 0x2805a3cf
mov ecx, dword [ebx + 0x48]
mov ecx, dword [ecx]
jmp 0x2805a3d1
xor ecx, ecx
mov edx, 0xff
cmp ecx, edx
movzx ecx, cl
jle 0x2805a3df
mov ecx, edx
mov byte [eax], cl
mov eax, dword [ebp - 4]
add eax, 8
xor ecx, ecx
mov dword [ebp - 4], eax
cmp byte [eax + 1], 0x39
sete cl
mov dword [ebp - 0x20], ecx
jmp 0x2805a444
test byte [ebp + 0x31], 0x1c
je 0x2805a413
cmp byte [edx + 5], 0x21
je 0x2805a40a
test byte [ebp + 0x31], 0x18
je 0x2805a413
mov dword [ebp + 0x20], 1
jmp 0x2805a42b
test byte [ebp + 0x31], 4
je 0x2805a41b
inc dword [ebx]
inc dword [ebp - 0x10]
test byte [ebp + 0x31], 0x18
je 0x2805abbc
mov dword [ebp + 0x20], esi
push edx
mov dword [ebp - 0x34], 0x7fff
push dword [ebp + 8]
call sym.perl510.dll_Perl_regnext
add dword [ebp - 4], 4
pop ecx
pop ecx
mov dword [ebp - 0x4c], eax
test byte [ebp + 0x31], 4
je 0x2805a469
cmp dword [ebp + 0x20], esi
jne 0x2805a464
push dword [ebp - 8]
push dword [ebp + 0x14]
push ebx
push dword [ebp + 0xc]
push dword [ebp + 8]
call fcn.280598cf
add esp, 0x14
mov eax, dword [ebx]
mov dword [ebp - 0x30], eax
cmp ebx, esi
je 0x2805a484
mov eax, dword [ebx + 0x40]
mov dword [ebp - 0x38], eax
and ax, 0xfc7f
cmp dword [ebp - 8], esi
mov dword [ebx + 0x40], eax
je 0x2805a484
or al, 0x40
mov dword [ebx + 0x40], eax
mov eax, dword [ebp + 0x30]
and eax, 0x1800
mov dword [ebp - 0x18], eax
je 0x2805a4c3
lea eax, [ebp - 0xf0]
push eax
push dword [ebp + 0xc]
call fcn.28059aa3
mov eax, dword [ebx + 0x4c]
mov edi, dword [ebp + 0x30]
mov dword [ebp - 0x28], eax
pop ecx
lea eax, [ebp - 0xf0]
and edi, 0xffffefff
mov esi, 0x800
pop ecx
mov dword [ebx + 0x4c], eax
or edi, esi
jmp 0x2805a4c8
mov esi, 0x800
mov ecx, dword [ebp - 0x34]
lea eax, [ecx - 1]
cmp dword [ebp + 0x20], eax
je 0x2805a4e1
cmp ecx, 0x7fff
je 0x2805a4e1
and edi, 0xffffdfff
cmp dword [ebp + 0x20], 0
jne 0x2805a4ed
and edi, 0xfffffbff
mov eax, dword [ebp + 0x34]
mov ecx, edi
inc eax
push eax
push ecx
push 0
lea eax, [ebp - 0x48]
push dword [ebp + 0x28]
push dword [ebp + 0x24]
push ebx
push dword [ebp + 0x1c]
push eax
lea eax, [ebp - 4]
push dword [ebp + 0x14]
push eax
push dword [ebp + 0xc]
push dword [ebp + 8]
call fcn.28059e20
add esp, 0x30
cmp dword [ebp - 0x18], 0
mov edi, eax
mov dword [ebp - 0xc], edi
je 0x2805a52b
mov eax, dword [ebp - 0x28]
mov dword [ebx + 0x4c], eax
cmp dword [ebp + 0x20], 0
je 0x2805a579
test edi, edi
je 0x2805a579
test byte [ebp + 0x31], 0x10
je 0x2805a55d
lea eax, [ebp - 0xf0]
push eax
push dword [ebx + 0x4c]
push dword [ebp + 0xc]
call fcn.2805c53f
push dword [ebp + 0x2c]
push dword [ebx + 0x4c]
call fcn.2805c49e
add esp, 0x14
jmp 0x2805a573
test dword [ebp + 0x30], esi
je 0x2805a573
lea eax, [ebp - 0xf0]
push eax
push dword [ebx + 0x4c]
call fcn.2805c49e
pop ecx
pop ecx
and byte [ebp + 0x31], 0xe7
jmp 0x2805a5e0
test byte [ebp + 0x31], 0x10
je 0x2805a596
lea eax, [ebp - 0xf0]
push eax
push dword [ebx + 0x4c]
push dword [ebp + 0xc]
call fcn.2805c53f
add esp, 0xc
jmp 0x2805a5e0
test dword [ebp + 0x30], esi
je 0x2805a5e0
push 0x2c
call sym.perl510.dll_Perl_safesysmalloc
mov edi, eax
push 0x11
push edi
mov dword [ebp + 0x2c], edi
push dword [ebp + 8]
call sym.perl510.dll_Perl_save_pushptr
mov esi, dword [ebx + 0x4c]
mov eax, dword [ebp + 0x30]
add esp, 0x10
and ah, 0xf7
or ah, 0x10
push 0xb
mov dword [ebp + 0x30], eax
pop ecx
rep movsd dword es:[edi], dword [esi]
mov edi, dword [ebx + 0x4c]
push 0xb
pop ecx
lea esi, [ebp - 0xf0]
rep movsd dword es:[edi], dword [esi]
mov eax, dword [ebx + 0x4c]
mov edi, dword [ebp - 0xc]
or byte [eax], 0x10
xor eax, eax
cmp dword [ebp - 4], eax
jne 0x2805a5ed
mov ecx, dword [ebp - 0x4c]
mov dword [ebp - 4], ecx
cmp dword [ebp - 0x20], eax
jne 0x2805a5fd
cmp dword [ebp + 0x20], eax
jne 0x2805a5fd
cmp dword [ebp - 0x34], 1
je 0x2805a653
cmp edi, eax
jne 0x2805a653
cmp dword [ebp - 0x48], eax
jne 0x2805a653
cmp ebx, eax
je 0x2805a653
test word [ebx + 0x40], 0x180
jne 0x2805a653
cmp dword [ebp - 0x34], 0x2aaa
jg 0x2805a653
push 0x14
push dword [ebp + 8]
call sym.perl510.dll_Perl_ckwarn
pop ecx
test al, al
pop ecx
je 0x2805a653
mov eax, dword [ebp + 0xc]
mov ecx, dword [eax + 4]
mov eax, dword [eax + 0x18]
sub eax, ecx
lea edx, [eax + ecx]
push edx
push ecx
push eax
push str.Quantifier_unexpected_on_zero_length_expression
push str._s_in_regex__marked_by_____HERE_in_m__.s_____HERE__s_
push 0x14
push dword [ebp + 8]
call sym.perl510.dll_Perl_warner
add esp, 0x1c
mov eax, edi
mov edx, dword [ebp - 0x48]
imul eax, dword [ebp + 0x20]
add dword [ebp - 0x10], eax
cmp dword [ebp - 0x34], 0x7fff
mov dword [ebp - 0x40], eax
jne 0x2805a672
lea ecx, [edx + edi]
test ecx, ecx
jg 0x2805a67e
cmp edx, 0x7fffffff
je 0x2805a67e
xor ecx, ecx
jmp 0x2805a681
push 1
pop ecx
or dword [ebp - 0x3c], ecx
mov ecx, dword [ebp - 0x3c]
or dword [ebp - 8], ecx
lea ecx, [edx + edi]
imul ecx, dword [ebp - 0x34]
sub ecx, eax
mov eax, dword [ebp - 0x14]
add dword [ebp - 0x24], ecx
cmp byte [eax], 0x2b
jne 0x2805a752
test ebx, ebx
je 0x2805a752
mov eax, dword [ebx + 0x40]
test ah, 1
je 0x2805a752
test ah, 2
jne 0x2805a752
test edx, edx
jne 0x2805a752
cmp dword [ebp - 0xc], 1
jne 0x2805a752
mov eax, dword [ebp - 0x1c]
lea esi, [eax + 8]
push esi
push dword [ebp + 8]
call sym.perl510.dll_Perl_regnext
mov edi, eax
movzx eax, byte [edi + 1]
push eax
push sym.perl510.dll_PL_simple
call dword [sym.imp.MSVCRT.dll_strchr]
add esp, 0x10
test eax, eax
jne 0x2805a70b
movzx eax, byte [edi + 1]
cmp byte [eax + sym.perl510.dll_PL_regkind], 0x21
jne 0x2805a752
cmp byte [edi], 1
jne 0x2805a752
push edi
push dword [ebp + 8]
call sym.perl510.dll_Perl_regnext
cmp byte [eax + 1], 0x2e
pop ecx
pop ecx
jne 0x2805a752
mov ecx, dword [ebp + 0xc]
mov ecx, dword [ecx + 0x54]
test ecx, ecx
je 0x2805a740
mov edx, dword [esi + 4]
mov edi, dword [ebp - 0x1c]
mov dword [ecx + edx*4 - 4], edi
mov edi, dword [ebp + 0xc]
mov edx, dword [esi + 4]
lea ecx, [eax + 8]
mov edi, dword [edi + 0x58]
mov dword [edi + edx*4 - 4], ecx
mov ecx, dword [ebp - 0x1c]
mov al, byte [eax + 4]
mov byte [ecx], al
mov eax, dword [ebp - 0x14]
mov byte [eax], 0x29
mov byte [esi + 1], 0x24
mov eax, dword [ebp - 0x14]
mov cl, byte [eax]
cmp cl, 0x2b
jne 0x2805a8e5
test ebx, ebx
je 0x2805a89e
mov eax, dword [ebx + 0x40]
test al, 0x80
jne 0x2805a89e
test ah, 2
jne 0x2805a89e
cmp dword [ebp - 0x48], 0
jne 0x2805a89e
cmp dword [ebp - 0xc], 0
je 0x2805a89e
mov edi, dword [ebp - 0x1c]
mov eax, dword [ebp - 0x14]
lea esi, [edi + 8]
mov byte [eax], 0x2a
push esi
push dword [ebp + 8]
call sym.perl510.dll_Perl_regnext
pop ecx
mov dword [ebp - 0x28], eax
test eax, eax
pop ecx
je 0x2805a7b9
cmp byte [eax + 1], 0x2c
je 0x2805a7b9
mov esi, eax
push eax
jmp 0x2805a79d
mov byte [eax + 1], 1
test byte [ebx + 0x41], 1
je 0x2805a899
cmp byte [esi + 1], 0x2e
lea ecx, [edi + 8]
mov dword [ebp - 0x18], ecx
je 0x2805a838
mov eax, dword [ebp + 0xc]
mov ecx, dword [ebp + 8]
add ecx, 0x1ec
mov dword [ebp - 0x20], 0x280ac738
mov edi, dword [eax + 0x14]
sub edi, dword [eax + 4]
cmp dword [eax + 0x28], ecx
je 0x2805a804
push dword [eax + 8]
push 0x28064d23
push dword [ebp + 8]
call sym.perl510.dll_Perl_save_destructor_x
add esp, 0xc
cmp edi, 0x7f
jle 0x2805a813
push 0x75
mov dword [ebp - 0x20], 0x280acee8
pop edi
push dword [ebp - 0x20]
mov eax, dword [ebp + 0xc]
push dword [eax + 4]
push edi
push str.Panic_opt_close
push str._s_in_regex_m__.s_s_
push dword [ebp + 8]
call sym.perl510.dll_Perl_croak
mov eax, dword [ebp - 0x28]
mov edi, dword [ebp - 0x1c]
add esp, 0x18
mov cl, byte [esi + 4]
mov byte [edi], cl
mov ecx, dword [ebp + 0xc]
mov edx, dword [ecx + 0x54]
test edx, edx
je 0x2805a864
mov ecx, dword [ebp - 0x18]
add eax, 4
mov ecx, dword [ecx + 4]
mov dword [edx + ecx*4 - 4], edi
mov ecx, dword [ebp - 0x18]
mov edx, dword [ecx + 4]
mov ecx, dword [ebp + 0xc]
mov edi, dword [ecx + 0x58]
mov dword [edi + edx*4 - 4], eax
mov eax, dword [ebp - 0x18]
mov byte [eax + 1], 0x59
mov eax, dword [ebp + 0x34]
inc eax
mov byte [esi + 1], 0x59
push eax
xor eax, eax
push eax
push eax
push dword [ebp + 0x28]
push dword [ebp + 0x24]
push eax
lea eax, [ebp - 0x48]
push esi
push eax
push dword [ebp + 0x14]
lea eax, [ebp - 0x18]
push eax
push ecx
push dword [ebp + 8]
call fcn.28059e20
add esp, 0x30
jmp 0x2805a8e5
and byte [edi], 0
jmp 0x2805a8e5
cmp cl, 0x2b
jne 0x2805a8e5
test byte [ebp + 0x31], 0x20
je 0x2805a8e5
cmp dword [ebp - 0x34], 0x7fff
jne 0x2805a8e5
test ebx, ebx
je 0x2805a8f4
inc dword [ebx + 0x44]
cmp dword [ebx + 0x44], 0x10
jge 0x2805a8e5
mov eax, dword [ebp - 0x1c]
movzx ecx, word [eax + 2]
cmp byte [eax + ecx*4 - 3], 0x24
lea eax, [eax + ecx*4]
jne 0x2805a8d6
mov ecx, dword [eax + 4]
lea eax, [eax + ecx*4]
mov ecx, dword [ebp + 0xc]
mov cl, byte [ecx + 0x1c]
shl cl, 4
or cl, byte [ebx + 0x44]
mov byte [eax - 4], cl
test ebx, ebx
je 0x2805a8f4
test word [ebp - 0x38], 0x180
je 0x2805a8f4
inc dword [ebp - 0x2c]
test byte [ebp + 0x31], 4
je 0x2805abac
xor eax, eax
xor esi, esi
cmp dword [ebp + 0x20], eax
setne al
cmp dword [ebx + 0xc], esi
mov dword [ebp - 0x28], eax
jle 0x2805aaab
cmp dword [ebp + 0x20], esi
je 0x2805aaab
mov eax, dword [ebx + 0x10]
mov ecx, dword [ebp - 0x30]
cmp ecx, eax
mov dword [ebp - 0x4c], ecx
jge 0x2805a92d
mov dword [ebp - 0x4c], eax
mov eax, dword [ebx + 8]
mov ecx, 0x400
mov edx, dword [eax + 8]
and edx, ecx
cmp edx, ecx
jne 0x2805a94b
mov ecx, dword [eax]
mov ecx, dword [ecx + 8]
mov dword [ebp - 0x44], ecx
mov esi, dword [eax + 0xc]
jmp 0x2805a95f
lea ecx, [ebp - 0x44]
push 0x22
push ecx
push eax
push dword [ebp + 8]
call sym.perl510.dll_Perl_sv_2pv_flags
add esp, 0x10
mov esi, eax
mov eax, dword [ebp - 0x4c]
mov ecx, dword [ebp + 0xc]
sub eax, dword [ebx + 0x10]
cmp dword [ecx + 0x60], 0
je 0x2805a97d
push eax
push esi
push dword [ebp + 8]
call sym.perl510.dll_Perl_utf8_hop
add esp, 0xc
sub eax, esi
mov ecx, dword [ebp + 0xc]
sub dword [ebp - 0x44], eax
mov edi, 0x20000000
mov ecx, dword [ecx + 0x60]
neg ecx
sbb ecx, ecx
add eax, esi
and ecx, edi
push ecx
push dword [ebp - 0x44]
push eax
push dword [ebp + 8]
call sym.perl510.dll_Perl_newSVpvn_flags
add esp, 0x10
cmp dword [ebp - 0x48], 0
mov esi, eax
jne 0x2805aa83
mov eax, dword [ebp - 0x4c]
cmp dword [ebp - 0x30], eax
jne 0x2805aa83
cmp dword [ebp + 0x20], 1
jle 0x2805aaab
mov eax, dword [ebp - 0x44]
mov ecx, dword [esi]
imul eax, dword [ebp + 0x20]
inc eax
cmp dword [ecx + 0xc], eax
jae 0x2805a9e1
push eax
push esi
push dword [ebp + 8]
call sym.perl510.dll_Perl_sv_grow
add esp, 0xc
mov eax, dword [ebp + 0x20]
lea ecx, [eax - 1]
mov eax, dword [esi + 0xc]
mov dword [ebp - 0x20], ecx
push ecx
mov ecx, dword [ebp - 0x44]
push ecx
add ecx, eax
push eax
push ecx
push dword [ebp + 8]
call sym.perl510.dll_Perl_repeatcpy
mov eax, dword [esi]
mov ecx, dword [ebp + 0x20]
push 2
push esi
imul ecx, dword [eax + 8]
mov dword [eax + 8], ecx
mov eax, dword [ebx + 8]
mov ecx, dword [ebp - 0x44]
mov eax, dword [eax]
sub dword [eax + 8], ecx
push dword [ebx + 8]
push dword [ebp + 8]
call sym.perl510.dll_Perl_sv_catsv_flags
mov eax, dword [ebx + 8]
add esp, 0x24
mov ecx, dword [eax + 8]
test edi, ecx
je 0x2805aa4a
test ecx, 0xe00000
je 0x2805aa4a
push 0x77
push eax
push dword [ebp + 8]
call sym.perl510.dll_Perl_mg_find
add esp, 0xc
mov edi, eax
jmp 0x2805aa4c
xor edi, edi
test edi, edi
je 0x2805aa77
cmp dword [edi + 0xc], 0
jl 0x2805aa77
mov eax, dword [ebp + 0xc]
cmp dword [eax + 0x60], 0
je 0x2805aa6c
push esi
push dword [ebp + 8]
call sym.perl510.dll_Perl_sv_len_utf8
pop ecx
pop ecx
jmp 0x2805aa71
mov eax, dword [esi]
mov eax, dword [eax + 8]
sub eax, dword [ebp - 0x44]
add dword [edi + 0xc], eax
mov eax, dword [ebp - 0x44]
imul eax, dword [ebp - 0x20]
add dword [ebx + 0xc], eax
jmp 0x2805aaab
mov eax, dword [ebp + 0x20]
dec eax
imul eax, dword [ebp - 0xc]
add dword [ebx + 0x10], eax
cmp dword [ebp - 8], 0
je 0x2805aa9b
mov eax, 0x7fffffff
jmp 0x2805aaa8
mov eax, dword [ebx + 4]
mov ecx, dword [ebp - 0x34]
add eax, dword [ebp - 0xc]
dec ecx
imul eax, ecx
add dword [ebx + 0x14], eax
mov edx, dword [ebp + 0x20]
mov eax, dword [ebp - 0x28]
mov ecx, dword [ebp - 0xc]
sub edx, eax
imul edx, ecx
add dword [ebx], edx
mov edx, dword [ebp - 0x48]
imul eax, edx
lea edi, [edx + ecx]
mov ecx, dword [ebp - 0x34]
imul edi, ecx
sub edi, eax
sub edi, dword [ebp - 0x40]
add dword [ebx + 4], edi
cmp dword [ebp + 0x20], ecx
je 0x2805aba1
push dword [ebp - 8]
push dword [ebp + 0x14]
push ebx
push dword [ebp + 0xc]
push dword [ebp + 8]
call fcn.280598cf
add esp, 0x14
cmp dword [ebp + 0x20], 0
je 0x2805ab9b
test esi, esi
je 0x2805ab9b
mov edi, dword [ebx + 8]
mov eax, dword [edi + 8]
test eax, 0x20000000
je 0x2805ab26
test eax, 0xe00000
je 0x2805ab26
push 0x77
push edi
push dword [ebp + 8]
call sym.perl510.dll_Perl_mg_find
add esp, 0xc
jmp 0x2805ab28
xor eax, eax
test eax, eax
je 0x2805ab30
or dword [eax + 0xc], 0xffffffff
push 0x602
push esi
push edi
push dword [ebp + 8]
call sym.perl510.dll_Perl_sv_setsv_flags
mov eax, dword [ebx]
add esp, 0x10
mov dword [ebx + 0xc], eax
mov eax, dword [ebp + 0xc]
cmp dword [eax + 0x60], 0
je 0x2805ab5d
push esi
push dword [ebp + 8]
call sym.perl510.dll_Perl_sv_len_utf8
pop ecx
pop ecx
jmp 0x2805ab62
mov eax, dword [esi]
mov eax, dword [eax + 8]
mov ecx, dword [ebx]
sub ecx, eax
cmp dword [ebp - 8], 0
mov dword [ebx + 0x10], ecx
je 0x2805ab76
mov ecx, 0x7fffffff
jmp 0x2805ab98
mov eax, dword [ebp + 0xc]
cmp dword [eax + 0x60], 0
je 0x2805ab8c
push esi
push dword [ebp + 8]
call sym.perl510.dll_Perl_sv_len_utf8
pop ecx
pop ecx
jmp 0x2805ab91
mov eax, dword [esi]
mov eax, dword [eax + 8]
mov ecx, dword [ebx]
sub ecx, eax
add ecx, dword [ebx + 4]
mov dword [ebx + 0x14], ecx
lea eax, [ebx + 0x2c]
mov dword [ebx + 0x18], eax
push esi
push dword [ebp + 8]
call sym.perl510.dll_Perl_sv_free
pop ecx
pop ecx
test ebx, ebx
je 0x2805abf2
test byte [ebp - 0x37], 2
je 0x2805abf2
or byte [ebx + 0x41], 2
jmp 0x2805abf2
push 1
pop esi
push edx
mov dword [ebp - 0x3c], esi
push dword [ebp + 8]
mov dword [ebp - 8], esi
call sym.perl510.dll_Perl_regnext
test byte [ebp + 0x31], 4
pop ecx
mov dword [ebp - 4], eax
pop ecx
je 0x2805abf2
push esi
push dword [ebp + 0x14]
push ebx
push dword [ebp + 0xc]
push dword [ebp + 8]
call fcn.280598cf
lea eax, [ebx + 0x2c]
add esp, 0x14
mov dword [ebx + 0x18], eax
mov eax, dword [ebp - 0x14]
cmp byte [eax], 0x2b
je 0x28059ea0
mov esi, dword [ebp - 0x1c]
push esi
push dword [ebp + 8]
call sym.perl510.dll_Perl_regnext
pop ecx
pop ecx
movzx ecx, byte [eax + 1]
cmp byte [ecx + sym.perl510.dll_PL_regkind], 0x24
jne 0x28059ea0
mov ax, word [eax + 2]
test ax, ax
je 0x28059ea0
add word [esi + 2], ax
jmp 0x2805ac01
mov ecx, dword [ebp - 4]
mov al, byte [ecx + 1]
cmp al, 0x53
jne 0x2805ad40
test byte [ebp + 0x31], 0x18
je 0x2805ad0b
mov eax, dword [ebx + 0x4c]
and byte [eax], 0xef
test byte [ebp + 0x31], 8
je 0x2805aca6
xor eax, eax
mov edi, 0x85
cmp eax, 0xa
jl 0x2805ac65
cmp eax, 0xd
jle 0x2805ac9c
cmp eax, 0xd
jle 0x2805ac82
cmp eax, edi
je 0x2805ac9c
jle 0x2805ac82
mov ecx, 0x2028
cmp eax, ecx
je 0x2805ac9c
jle 0x2805ac82
cmp eax, 0x2029
je 0x2805ac9c
mov edx, dword [ebx + 0x4c]
movzx ecx, al
shr ecx, 3
lea esi, [ecx + edx + 8]
mov ecx, eax
and ecx, 7
mov dl, 1
shl dl, cl
not dl
and byte [esi], dl
inc eax
cmp eax, 0x100
jl 0x2805ac5b
jmp 0x2805acf4
xor eax, eax
mov edi, 0x85
cmp eax, 0xa
jl 0x2805acb7
cmp eax, 0xd
jle 0x2805acd4
cmp eax, 0xd
jle 0x2805acec
cmp eax, edi
je 0x2805acd4
jle 0x2805acec
mov ecx, 0x2028
cmp eax, ecx
je 0x2805acd4
jle 0x2805acec
cmp eax, 0x2029
jne 0x2805acec
mov edx, dword [ebx + 0x4c]
movzx ecx, al
shr ecx, 3
lea esi, [ecx + edx + 8]
mov ecx, eax
and ecx, 7
mov dl, 1
shl dl, cl
or byte [esi], dl
inc eax
cmp eax, 0x100
jl 0x2805acad
test byte [ebp + 0x31], 0x10
je 0x2805ad07
push dword [ebp + 0x2c]
push dword [ebx + 0x4c]
call fcn.2805c49e
pop ecx
pop ecx
and byte [ebp + 0x31], 0xe7
inc dword [ebp - 0x10]
inc dword [ebp - 0x24]
test byte [ebp + 0x31], 4
je 0x2805a1a0
push dword [ebp - 8]
push dword [ebp + 0x14]
push ebx
push dword [ebp + 0xc]
push dword [ebp + 8]
call fcn.280598cf
add esp, 0x14
inc dword [ebx]
inc dword [ebx + 4]
lea eax, [ebx + 0x2c]
mov dword [ebx + 0x18], eax
jmp 0x2805a1a0
cmp al, 0x58
jne 0x2805ad83
xor eax, eax
cmp dword [ecx + 4], 0xdf
setne al
and byte [ebp + 0x31], 0xe7
inc eax
inc dword [ebp - 0x10]
mov esi, eax
add dword [ebp - 0x24], esi
test byte [ebp + 0x31], 4
je 0x2805a1a0
push dword [ebp - 8]
push dword [ebp + 0x14]
push ebx
push dword [ebp + 0xc]
push dword [ebp + 8]
call fcn.280598cf
add esp, 0x14
inc dword [ebx]
add dword [ebx + 4], esi
jmp 0x2805ad35
movzx eax, al
push eax
push sym.perl510.dll_PL_simple
call esi
pop ecx
test eax, eax
pop ecx
je 0x2805b706
mov edi, dword [ebp + 0x30]
xor esi, esi
test edi, 0x400
je 0x2805adbc
push dword [ebp - 8]
push dword [ebp + 0x14]
push ebx
push dword [ebp + 0xc]
push dword [ebp + 8]
call fcn.280598cf
add esp, 0x14
inc dword [ebx]
inc dword [ebp - 0x10]
test edi, 0x1800
je 0x2805a1a0
mov eax, dword [ebx + 0x4c]
and byte [eax], 0xef
mov edx, dword [ebp - 4]
mov cl, byte [edx + 1]
movzx eax, cl
movzx eax, byte [eax + sym.perl510.dll_PL_regkind]
cmp eax, 0x18
jg 0x2805b1b1
je 0x2805b10e
add eax, 0xfffffff2
cmp eax, 9
ja case.0x2805adfc.15
jmp dword [eax*4 + 0x2805c448]
cmp cl, 0xf
je case.0x2805adfc.15
test edi, 0x1000
je 0x2805ae34
mov eax, dword [ebx + 0x4c]
test byte [eax + 9], 4
jne 0x2805ae26
test byte [eax], 8
jne 0x2805ae26
xor esi, esi
jmp 0x2805ae29
push 1
pop esi
push eax
push dword [ebp + 0xc]
call fcn.28059ac5
pop ecx
pop ecx
test edi, 0x800
jne 0x2805ae44
test esi, esi
jne 0x2805b6f7
mov eax, dword [ebx + 0x4c]
and byte [eax + 9], 0xfb
jmp 0x2805b6f7
push edx
push dword [ebx + 0x4c]
test edi, 0x800
je 0x2805ae68
call fcn.2805c49e
pop ecx
pop ecx
jmp 0x2805b6f7
push dword [ebp + 0xc]
call fcn.2805c53f
add esp, 0xc
jmp 0x2805b6f7
mov eax, dword [ebx + 0x4c]
test edi, 0x800
je 0x2805aedc
test byte [eax], 1
jne 0x2805b6f7
and byte [eax + 0x28], 0xfd
xor eax, eax
cmp eax, 0x41
jl 0x2805ae9c
cmp eax, 0x5a
jle 0x2805aecf
cmp eax, 0x61
jl 0x2805aea6
cmp eax, 0x7a
jle 0x2805aecf
cmp eax, 0x30
jl 0x2805aeb0
cmp eax, 0x39
jle 0x2805aecf
cmp eax, 0x5f
je 0x2805aecf
mov edx, dword [ebx + 0x4c]
movzx ecx, al
shr ecx, 3
lea esi, [ecx + edx + 8]
mov ecx, eax
and ecx, 7
mov dl, 1
shl dl, cl
not dl
and byte [esi], dl
inc eax
cmp eax, 0x100
jl 0x2805ae92
jmp 0x2805b6f7
test byte [eax], 1
je 0x2805aeea
or byte [eax + 0x28], 1
jmp 0x2805b6f7
xor eax, eax
cmp eax, 0x41
jl 0x2805aef6
cmp eax, 0x5a
jle 0x2805af0f
cmp eax, 0x61
jl 0x2805af00
cmp eax, 0x7a
jle 0x2805af0f
cmp eax, 0x30
jl 0x2805af0a
cmp eax, 0x39
jle 0x2805af0f
cmp eax, 0x5f
jne 0x2805af27
mov edx, dword [ebx + 0x4c]
movzx ecx, al
shr ecx, 3
lea esi, [ecx + edx + 8]
mov ecx, eax
and ecx, 7
mov dl, 1
shl dl, cl
or byte [esi], dl
inc eax
cmp eax, 0x100
jl 0x2805aeec
jmp 0x2805b6f7
mov eax, dword [ebx + 0x4c]
test edi, 0x800
je 0x2805af51
test byte [eax], 1
je 0x2805b6f7
and byte [eax + 0x28], 0xfd
jmp 0x2805b6f7
or byte [eax + 0x28], 1
mov eax, dword [ebx + 0x4c]
or byte [eax], 1
jmp 0x2805b6f7
mov eax, dword [ebx + 0x4c]
test edi, 0x800
je 0x2805afc4
test byte [eax], 1
jne 0x2805b6f7
and byte [eax + 0x28], 0xfe
xor eax, eax
cmp eax, 0x41
jl 0x2805af84
cmp eax, 0x5a
jle 0x2805af9d
cmp eax, 0x61
jl 0x2805af8e
cmp eax, 0x7a
jle 0x2805af9d
cmp eax, 0x30
jl 0x2805af98
cmp eax, 0x39
jle 0x2805af9d
cmp eax, 0x5f
jne 0x2805afb7
mov edx, dword [ebx + 0x4c]
movzx ecx, al
shr ecx, 3
lea esi, [ecx + edx + 8]
mov ecx, eax
and ecx, 7
mov dl, 1
shl dl, cl
not dl
and byte [esi], dl
inc eax
cmp eax, 0x100
jl 0x2805af7a
jmp 0x2805b6f7
test byte [eax], 1
je 0x2805afd2
or byte [eax + 0x28], 2
jmp 0x2805b6f7
xor eax, eax
cmp eax, 0x41
jl 0x2805afde
cmp eax, 0x5a
jle 0x2805b00f
cmp eax, 0x61
jl 0x2805afe8
cmp eax, 0x7a
jle 0x2805b00f
cmp eax, 0x30
jl 0x2805aff2
cmp eax, 0x39
jle 0x2805b00f
cmp eax, 0x5f
je 0x2805b00f
mov edx, dword [ebx + 0x4c]
movzx ecx, al
shr ecx, 3
lea esi, [ecx + edx + 8]
mov ecx, eax
and ecx, 7
mov dl, 1
shl dl, cl
or byte [esi], dl
inc eax
cmp eax, 0x100
jl 0x2805afd4
jmp 0x2805b6f7
mov eax, dword [ebx + 0x4c]
test edi, 0x800
je 0x2805b039
test byte [eax], 1
je 0x2805b6f7
and byte [eax + 0x28], 0xfe
jmp 0x2805b6f7
or byte [eax], 1
mov eax, dword [ebx + 0x4c]
jmp 0x2805afc9
mov eax, dword [ebx + 0x4c]
test edi, 0x800
je 0x2805b09b
test byte [eax], 1
jne 0x2805b6f7
and byte [eax + 0x28], 0xf7
xor eax, eax
cmp eax, 0x20
je 0x2805b08e
cmp eax, 9
je 0x2805b08e
cmp eax, 0xa
je 0x2805b08e
cmp eax, 0xd
je 0x2805b08e
cmp eax, 0xc
je 0x2805b08e
mov edx, dword [ebx + 0x4c]
movzx ecx, al
shr ecx, 3
lea esi, [ecx + edx + 8]
mov ecx, eax
and ecx, 7
mov dl, 1
shl dl, cl
not dl
and byte [esi], dl
inc eax
cmp eax, 0x100
jl 0x2805b05b
jmp 0x2805b6f7
test byte [eax], 1
je 0x2805b0a9
or byte [eax + 0x28], 4
jmp 0x2805b6f7
xor eax, eax
cmp eax, 0x20
je 0x2805b0c4
cmp eax, 9
je 0x2805b0c4
cmp eax, 0xa
je 0x2805b0c4
cmp eax, 0xd
je 0x2805b0c4
cmp eax, 0xc
jne 0x2805b0dc
mov edx, dword [ebx + 0x4c]
movzx ecx, al
shr ecx, 3
lea esi, [ecx + edx + 8]
mov ecx, eax
and ecx, 7
mov dl, 1
shl dl, cl
or byte [esi], dl
inc eax
cmp eax, 0x100
jl 0x2805b0ab
jmp 0x2805b6f7
mov eax, dword [ebx + 0x4c]
test edi, 0x800
je 0x2805b106
test byte [eax], 1
je 0x2805b6f7
and byte [eax + 0x28], 0xf7
jmp 0x2805b6f7
or byte [eax], 1
mov eax, dword [ebx + 0x4c]
jmp 0x2805b0a0
mov eax, dword [ebx + 0x4c]
test edi, 0x800
je 0x2805b168
test byte [eax], 1
jne 0x2805b6f7
and byte [eax + 0x28], 0xfb
xor eax, eax
cmp eax, 0x20
je 0x2805b141
cmp eax, 9
je 0x2805b141
cmp eax, 0xa
je 0x2805b141
cmp eax, 0xd
je 0x2805b141
cmp eax, 0xc
jne 0x2805b15b
mov edx, dword [ebx + 0x4c]
movzx ecx, al
shr ecx, 3
lea esi, [ecx + edx + 8]
mov ecx, eax
and ecx, 7
mov dl, 1
shl dl, cl
not dl
and byte [esi], dl
inc eax
cmp eax, 0x100
jl 0x2805b128
jmp 0x2805b6f7
test byte [eax], 1
jne 0x2805b6f3
xor eax, eax
cmp eax, 0x20
je 0x2805b1a4
cmp eax, 9
je 0x2805b1a4
cmp eax, 0xa
je 0x2805b1a4
cmp eax, 0xd
je 0x2805b1a4
cmp eax, 0xc
je 0x2805b1a4
mov edx, dword [ebx + 0x4c]
movzx ecx, al
shr ecx, 3
lea esi, [ecx + edx + 8]
mov ecx, eax
and ecx, 7
mov dl, 1
shl dl, cl
or byte [esi], dl
inc eax
cmp eax, 0x100
jl 0x2805b173
jmp 0x2805b6f7
sub eax, 0x19
je 0x2805b69a
dec eax
je 0x2805b61c
dec eax
dec eax
je 0x2805b59b
sub eax, 0x38
je 0x2805b4eb
dec eax
je 0x2805b43b
dec eax
je 0x2805b31d
dec eax
je 0x2805b1ff
test edi, 0x1000
je 0x2805b6f7
push dword [ebx + 0x4c]
push dword [ebp + 0xc]
call fcn.28059ac5
jmp 0x2805ae61
test edi, 0x800
je 0x2805b295
xor eax, eax
mov edi, 0x205f
cmp eax, 9
je 0x2805b26e
jle 0x2805b288
cmp eax, 0x20
je 0x2805b26e
jle 0x2805b288
mov ecx, 0xa0
cmp eax, ecx
je 0x2805b26e
jle 0x2805b288
mov ecx, 0x1680
cmp eax, ecx
je 0x2805b26e
jle 0x2805b288
mov ecx, 0x180e
cmp eax, ecx
je 0x2805b26e
jle 0x2805b288
cmp eax, 0x2000
jl 0x2805b24f
cmp eax, 0x200a
jle 0x2805b26e
cmp eax, 0x200a
jle 0x2805b288
mov ecx, 0x202f
cmp eax, ecx
je 0x2805b26e
jle 0x2805b288
cmp eax, edi
je 0x2805b26e
jle 0x2805b288
cmp eax, 0x3000
jne 0x2805b288
mov edx, dword [ebx + 0x4c]
movzx ecx, al
shr ecx, 3
lea esi, [ecx + edx + 8]
mov ecx, eax
and ecx, 7
mov dl, 1
shl dl, cl
not dl
and byte [esi], dl
inc eax
cmp eax, 0x100
jl 0x2805b212
jmp 0x2805b6f7
xor eax, eax
mov edi, 0x205f
cmp eax, 9
je 0x2805b310
jle 0x2805b2f8
cmp eax, 0x20
je 0x2805b310
jle 0x2805b2f8
mov ecx, 0xa0
cmp eax, ecx
je 0x2805b310
jle 0x2805b2f8
mov ecx, 0x1680
cmp eax, ecx
je 0x2805b310
jle 0x2805b2f8
mov ecx, 0x180e
cmp eax, ecx
je 0x2805b310
jle 0x2805b2f8
cmp eax, 0x2000
jl 0x2805b2d9
cmp eax, 0x200a
jle 0x2805b310
cmp eax, 0x200a
jle 0x2805b2f8
mov ecx, 0x202f
cmp eax, ecx
je 0x2805b310
jle 0x2805b2f8
cmp eax, edi
je 0x2805b310
jle 0x2805b2f8
cmp eax, 0x3000
je 0x2805b310
mov edx, dword [ebx + 0x4c]
movzx ecx, al
shr ecx, 3
lea esi, [ecx + edx + 8]
mov ecx, eax
and ecx, 7
mov dl, 1
shl dl, cl
or byte [esi], dl
inc eax
cmp eax, 0x100
jl 0x2805b29c
jmp 0x2805b6f7
test edi, 0x800
je 0x2805b3b3
xor eax, eax
mov edi, 0x205f
cmp eax, 9
je 0x2805b3a6
jle 0x2805b38c
cmp eax, 0x20
je 0x2805b3a6
jle 0x2805b38c
mov ecx, 0xa0
cmp eax, ecx
je 0x2805b3a6
jle 0x2805b38c
mov ecx, 0x1680
cmp eax, ecx
je 0x2805b3a6
jle 0x2805b38c
mov ecx, 0x180e
cmp eax, ecx
je 0x2805b3a6
jle 0x2805b38c
cmp eax, 0x2000
jl 0x2805b36d
cmp eax, 0x200a
jle 0x2805b3a6
cmp eax, 0x200a
jle 0x2805b38c
mov ecx, 0x202f
cmp eax, ecx
je 0x2805b3a6
jle 0x2805b38c
cmp eax, edi
je 0x2805b3a6
jle 0x2805b38c
cmp eax, 0x3000
je 0x2805b3a6
mov edx, dword [ebx + 0x4c]
movzx ecx, al
shr ecx, 3
lea esi, [ecx + edx + 8]
mov ecx, eax
and ecx, 7
mov dl, 1
shl dl, cl
not dl
and byte [esi], dl
inc eax
cmp eax, 0x100
jl 0x2805b330
jmp 0x2805b6f7
xor eax, eax
mov edi, 0x205f
cmp eax, 9
je 0x2805b416
jle 0x2805b42e
cmp eax, 0x20
je 0x2805b416
jle 0x2805b42e
mov ecx, 0xa0
cmp eax, ecx
je 0x2805b416
jle 0x2805b42e
mov ecx, 0x1680
cmp eax, ecx
je 0x2805b416
jle 0x2805b42e
mov ecx, 0x180e
cmp eax, ecx
je 0x2805b416
jle 0x2805b42e
cmp eax, 0x2000
jl 0x2805b3f7
cmp eax, 0x200a
jle 0x2805b416
cmp eax, 0x200a
jle 0x2805b42e
mov ecx, 0x202f
cmp eax, ecx
je 0x2805b416
jle 0x2805b42e
cmp eax, edi
je 0x2805b416
jle 0x2805b42e
cmp eax, 0x3000
jne 0x2805b42e
mov edx, dword [ebx + 0x4c]
movzx ecx, al
shr ecx, 3
lea esi, [ecx + edx + 8]
mov ecx, eax
and ecx, 7
mov dl, 1
shl dl, cl
or byte [esi], dl
inc eax
cmp eax, 0x100
jl 0x2805b3ba
jmp 0x2805b6f7
test edi, 0x800
je 0x2805b498
xor eax, eax
mov edi, 0x85
cmp eax, 0xa
jl 0x2805b454
cmp eax, 0xd
jle 0x2805b471
cmp eax, 0xd
jle 0x2805b48b
cmp eax, edi
je 0x2805b471
jle 0x2805b48b
mov ecx, 0x2028
cmp eax, ecx
je 0x2805b471
jle 0x2805b48b
cmp eax, 0x2029
jne 0x2805b48b
mov edx, dword [ebx + 0x4c]
movzx ecx, al
shr ecx, 3
lea esi, [ecx + edx + 8]
mov ecx, eax
and ecx, 7
mov dl, 1
shl dl, cl
not dl
and byte [esi], dl
inc eax
cmp eax, 0x100
jl 0x2805b44a
jmp 0x2805b6f7
xor eax, eax
mov edi, 0x85
cmp eax, 0xa
jl 0x2805b4a9
cmp eax, 0xd
jle 0x2805b4de
cmp eax, 0xd
jle 0x2805b4c6
cmp eax, edi
je 0x2805b4de
jle 0x2805b4c6
mov ecx, 0x2028
cmp eax, ecx
je 0x2805b4de
jle 0x2805b4c6
cmp eax, 0x2029
je 0x2805b4de
mov edx, dword [ebx + 0x4c]
movzx ecx, al
shr ecx, 3
lea esi, [ecx + edx + 8]
mov ecx, eax
and ecx, 7
mov dl, 1
shl dl, cl
or byte [esi], dl
inc eax
cmp eax, 0x100
jl 0x2805b49f
jmp 0x2805b6f7
test edi, 0x800
je 0x2805b548
xor eax, eax
mov edi, 0x85
cmp eax, 0xa
jl 0x2805b504
cmp eax, 0xd
jle 0x2805b53b
cmp eax, 0xd
jle 0x2805b521
cmp eax, edi
je 0x2805b53b
jle 0x2805b521
mov ecx, 0x2028
cmp eax, ecx
je 0x2805b53b
jle 0x2805b521
cmp eax, 0x2029
je 0x2805b53b
mov edx, dword [ebx + 0x4c]
movzx ecx, al
shr ecx, 3
lea esi, [ecx + edx + 8]
mov ecx, eax
and ecx, 7
mov dl, 1
shl dl, cl
not dl
and byte [esi], dl
inc eax
cmp eax, 0x100
jl 0x2805b4fa
jmp 0x2805b6f7
xor eax, eax
mov edi, 0x85
cmp eax, 0xa
jl 0x2805b559
cmp eax, 0xd
jle 0x2805b576
cmp eax, 0xd
jle 0x2805b58e
cmp eax, edi
je 0x2805b576
jle 0x2805b58e
mov ecx, 0x2028
cmp eax, ecx
je 0x2805b576
jle 0x2805b58e
cmp eax, 0x2029
jne 0x2805b58e
mov edx, dword [ebx + 0x4c]
movzx ecx, al
shr ecx, 3
lea esi, [ecx + edx + 8]
mov ecx, eax
and ecx, 7
mov dl, 1
shl dl, cl
or byte [esi], dl
inc eax
cmp eax, 0x100
jl 0x2805b54f
jmp 0x2805b6f7
mov eax, dword [ebx + 0x4c]
test edi, 0x800
je 0x2805b5dd
and byte [eax + 0x28], 0xef
xor eax, eax
cmp eax, 0x30
jl 0x2805b5d0
cmp eax, 0x39
jg 0x2805b5d0
mov edx, dword [ebx + 0x4c]
movzx ecx, al
shr ecx, 3
lea esi, [ecx + edx + 8]
mov ecx, eax
and ecx, 7
mov dl, 1
shl dl, cl
not dl
and byte [esi], dl
inc eax
cmp eax, 0x100
jl 0x2805b5ac
jmp 0x2805b6f7
test byte [eax], 1
je 0x2805b5eb
or byte [eax + 0x28], 0x20
jmp 0x2805b6f7
xor eax, eax
cmp eax, 0x30
jl 0x2805b5f7
cmp eax, 0x39
jle 0x2805b60f
mov edx, dword [ebx + 0x4c]
movzx ecx, al
shr ecx, 3
lea esi, [ecx + edx + 8]
mov ecx, eax
and ecx, 7
mov dl, 1
shl dl, cl
or byte [esi], dl
inc eax
cmp eax, 0x100
jl 0x2805b5ed
jmp 0x2805b6f7
mov eax, dword [ebx + 0x4c]
test edi, 0x800
je 0x2805b65e
and byte [eax + 0x28], 0xdf
xor eax, eax
cmp eax, 0x30
jl 0x2805b637
cmp eax, 0x39
jle 0x2805b651
mov edx, dword [ebx + 0x4c]
movzx ecx, al
shr ecx, 3
lea esi, [ecx + edx + 8]
mov ecx, eax
and ecx, 7
mov dl, 1
shl dl, cl
not dl
and byte [esi], dl
inc eax
cmp eax, 0x100
jl 0x2805b62d
jmp 0x2805b6f7
test byte [eax], 1
je 0x2805b66c
or byte [eax + 0x28], 0x10
jmp 0x2805b6f7
xor eax, eax
cmp eax, 0x30
jl 0x2805b690
cmp eax, 0x39
jg 0x2805b690
mov edx, dword [ebx + 0x4c]
movzx ecx, al
shr ecx, 3
lea esi, [ecx + edx + 8]
mov ecx, eax
and ecx, 7
mov dl, 1
shl dl, cl
or byte [esi], dl
inc eax
cmp eax, 0x100
jl 0x2805b66e
jmp 0x2805b6f7
mov eax, dword [ebx + 0x4c]
test edi, 0x800
je 0x2805b6ed
test byte [eax], 1
je 0x2805b6f7
and byte [eax + 0x28], 0xfb
xor eax, eax
cmp eax, 0x20
je 0x2805b6e3
cmp eax, 9
je 0x2805b6e3
cmp eax, 0xa
je 0x2805b6e3
cmp eax, 0xd
je 0x2805b6e3
cmp eax, 0xc
je 0x2805b6e3
mov edx, dword [ebx + 0x4c]
movzx ecx, al
shr ecx, 3
lea esi, [ecx + edx + 8]
mov ecx, eax
and ecx, 7
mov dl, 1
shl dl, cl
not dl
and byte [esi], dl
inc eax
cmp eax, 0x100
jl 0x2805b6b0
jmp 0x2805b6f7
or byte [eax], 1
mov eax, dword [ebx + 0x4c]
or byte [eax + 0x28], 8
test byte [ebp + 0x31], 0x10
je 0x2805a19c
jmp 0x2805a18f
mov edx, dword [ebp - 4]
mov esi, 0x400
mov al, byte [edx + 1]
movzx ecx, al
mov cl, byte [ecx + sym.perl510.dll_PL_regkind]
cmp cl, 6
jne 0x2805b734
test dword [ebp + 0x30], esi
je 0x2805b734
xor ecx, ecx
cmp al, 7
sete cl
inc ecx
or dword [ebx + 0x40], ecx
jmp 0x2805a1a0
cmp cl, 0x38
jne 0x2805b94a
cmp byte [edx], 0
jne 0x2805b750
test ebx, ebx
jne 0x2805b750
test byte [ebp + 0x31], 0x18
je 0x2805b94a
cmp al, 0x32
je 0x2805b75c
cmp al, 0x33
jne 0x2805b94a
xor esi, esi
cmp ebx, esi
mov dword [ebp - 0x40], esi
mov dword [ebp + 0x20], esi
mov dword [ebp - 0x7c], esi
je 0x2805b776
mov eax, dword [ebx + 0x44]
mov dword [ebp - 0x78], eax
mov eax, dword [ebx + 0x48]
jmp 0x2805b779
lea eax, [ebp - 0x40]
test byte [ebp + 0x31], 0x18
mov dword [ebp - 0x74], eax
mov eax, dword [ebp - 0x24]
mov dword [ebp - 0xb8], eax
je 0x2805b7ba
cmp byte [edx], 0
jne 0x2805b7ba
cmp byte [edx + 1], 0x32
jne 0x2805b7ba
lea eax, [ebp - 0x1cc]
push eax
push dword [ebp + 0xc]
call fcn.28059aa3
mov edx, dword [ebp - 4]
pop ecx
lea eax, [ebp - 0x1cc]
pop ecx
mov dword [ebp - 0x70], eax
mov dword [ebp + 0x20], 0x800
mov eax, 0x2000
test dword [ebp + 0x30], eax
je 0x2805b7c7
or dword [ebp + 0x20], eax
push edx
push dword [ebp + 8]
call sym.perl510.dll_Perl_regnext
mov eax, dword [ebp - 4]
add eax, 8
mov dword [ebp - 0x6c], eax
mov eax, dword [ebp + 0x34]
inc eax
push eax
lea eax, [ebp - 0xbc]
push dword [ebp + 0x20]
push esi
push dword [ebp + 0x28]
push dword [ebp + 0x24]
push eax
lea eax, [ebp - 0x64]
push dword [ebp + 0x1c]
push eax
lea eax, [ebp - 0x6c]
push dword [ebp + 0x14]
push eax
push dword [ebp + 0xc]
push dword [ebp + 8]
call fcn.28059e20
mov dword [ebp - 0x28], eax
mov eax, dword [ebp - 4]
add esp, 0x38
cmp byte [eax], 0
je 0x2805b8da
cmp dword [ebp - 0x64], esi
je 0x2805b86d
mov eax, dword [ebp + 0xc]
mov ecx, dword [ebp + 8]
mov edi, 0x280ac738
mov esi, dword [eax + 0x14]
lea edx, [ecx + 0x1ec]
sub esi, dword [eax + 4]
cmp dword [eax + 0x28], edx
je 0x2805b84f
push dword [eax + 8]
push 0x28064d23
push ecx
call sym.perl510.dll_Perl_save_destructor_x
mov eax, dword [ebp + 0xc]
add esp, 0xc
cmp esi, 0x7f
jle 0x2805b85c
push 0x75
mov edi, 0x280acee8
pop esi
push edi
push dword [eax + 4]
push esi
push str.Variable_length_lookbehind_not_implemented
push str._s_in_regex_m__.s_s_
jmp 0x2805b8c7
mov edi, 0xff
cmp dword [ebp - 0x28], edi
jle 0x2805b8d2
mov eax, dword [ebp + 0xc]
mov ecx, dword [ebp + 8]
add ecx, 0x1ec
mov dword [ebp - 0x20], 0x280ac738
mov esi, dword [eax + 0x14]
sub esi, dword [eax + 4]
cmp dword [eax + 0x28], ecx
je 0x2805b8a8
push dword [eax + 8]
push 0x28064d23
push dword [ebp + 8]
call sym.perl510.dll_Perl_save_destructor_x
add esp, 0xc
cmp esi, 0x7f
jle 0x2805b8b7
push 0x75
mov dword [ebp - 0x20], 0x280acee8
pop esi
push dword [ebp - 0x20]
mov eax, dword [ebp + 0xc]
push dword [eax + 4]
push esi
push edi
push str.Lookbehind_longer_than__lu_not_implemented_in_regex_m__.s_s_
push dword [ebp + 8]
call sym.perl510.dll_Perl_croak
add esp, 0x18
mov eax, dword [ebp - 4]
mov cl, byte [ebp - 0x28]
mov byte [eax], cl
test ebx, ebx
je 0x2805b8fc
test word [ebp - 0x7c], 0x180
je 0x2805b8e9
inc dword [ebp - 0x2c]
mov eax, 0x200
test dword [ebp - 0x7c], eax
je 0x2805b8f6
or dword [ebx + 0x40], eax
mov eax, dword [ebp - 0x78]
mov dword [ebx + 0x44], eax
test byte [ebp + 0x21], 8
je 0x2805a1a0
test byte [ebp + 0x31], 0x10
je 0x2805b91e
push dword [ebx + 0x4c]
push dword [ebp + 0xc]
call fcn.28059aa3
pop ecx
pop ecx
jmp 0x2805a1a0
mov eax, dword [ebx + 0x4c]
mov cl, byte [eax]
and ecx, 0x10
mov esi, ecx
lea ecx, [ebp - 0x1cc]
push ecx
push eax
call fcn.2805c49e
pop ecx
test esi, esi
pop ecx
je 0x2805a1a0
mov eax, dword [ebx + 0x4c]
or byte [eax], 0x10
jmp 0x2805a1a0
cmp al, 0x2d
jne 0x2805b962
mov eax, dword [ebp + 0x24]
cmp eax, dword [edx + 4]
je 0x2805a1a0
inc dword [ebp - 0x2c]
jmp 0x2805a1a0
cmp al, 0x2e
jne 0x2805b9ad
mov eax, dword [edx + 4]
cmp dword [ebp + 0x24], eax
je 0x2805c383
cmp eax, dword [ebp - 0x54]
jne 0x2805b995
push edx
push dword [ebp + 8]
call sym.perl510.dll_Perl_regnext
pop ecx
test eax, eax
pop ecx
je 0x2805b995
cmp byte [eax + 1], 0x2c
je 0x2805b995
cmp eax, dword [ebp + 0x1c]
jae 0x2805b995
and dword [ebp - 0x54], 0
test ebx, ebx
je 0x2805a1a0
mov ecx, dword [ebp - 4]
mov eax, dword [ebx + 0x48]
mov ecx, dword [ecx + 4]
mov dword [eax], ecx
jmp 0x2805a1a0
cmp al, 0x39
jne 0x2805b9c2
test ebx, ebx
je 0x2805a1a0
or byte [ebx + 0x41], 2
jmp 0x2805a1a0
cmp cl, 0x49
jne 0x2805ba12
test dword [ebp + 0x30], esi
je 0x2805b9e5
push dword [ebp - 8]
push dword [ebp + 0x14]
push ebx
push dword [ebp + 0xc]
push dword [ebp + 8]
call fcn.280598cf
add esp, 0x14
and byte [ebp + 0x31], 0xfb
test ebx, ebx
je 0x2805a1a0
mov eax, dword [ebp - 4]
cmp byte [eax + 1], 0x4b
jne 0x2805a1a0
mov eax, dword [ebp - 0x10]
or byte [ebx + 0x41], 0x80
cmp dword [ebp - 0x50], eax
jle 0x2805a1a0
mov dword [ebp - 0x50], eax
jmp 0x2805a1a0
cmp al, 0x3b
jne 0x2805ba5e
cmp byte [edx], 2
jne 0x2805ba5e
test dword [ebp + 0x30], esi
je 0x2805ba3b
push dword [ebp - 8]
push dword [ebp + 0x14]
push ebx
push dword [ebp + 0xc]
push dword [ebp + 8]
call fcn.280598cf
lea eax, [ebx + 0x2c]
add esp, 0x14
mov dword [ebx + 0x18], eax
test byte [ebp + 0x31], 0x10
push 1
pop eax
mov dword [ebp - 0x3c], eax
mov dword [ebp - 8], eax
je 0x2805a19c
push dword [ebx + 0x4c]
push dword [ebp + 0xc]
call fcn.28059ac5
jmp 0x2805a19a
cmp al, 0xd
jne 0x2805baba
mov edx, dword [ebp + 0xc]
mov ecx, dword [edx + 8]
mov eax, dword [ecx + 8]
test al, 0x20
jne 0x2805baa9
xor edi, edi
cmp dword [ebp - 0x24], edi
jne 0x2805baa9
cmp dword [ebp - 8], edi
jne 0x2805baa9
cmp ebx, edi
je 0x2805ba84
cmp dword [ebx + 4], edi
jne 0x2805baa9
test al, 0xf
jne 0x2805ba92
test dword [ebp + 0x30], esi
je 0x2805ba92
or al, 8
mov dword [ecx + 8], eax
mov eax, dword [edx + 8]
mov ecx, dword [ebp - 0x10]
cmp dword [eax + 0x14], ecx
jae 0x2805a1a0
mov dword [eax + 0x14], ecx
jmp 0x2805a1a0
or al, 0x20
mov dword [ecx + 8], eax
mov eax, dword [edx + 8]
and dword [eax + 0x14], 0
jmp 0x2805a1a0
cmp cl, 0x3d
jne 0x2805a1a0
mov eax, dword [ebp - 4]
push eax
mov dword [ebp - 0x20], eax
push dword [ebp + 8]
call sym.perl510.dll_Perl_regnext
mov edi, dword [ebp + 0xc]
pop ecx
and dword [ebp - 0x14], 0
pop ecx
mov ecx, dword [edi + 0xc]
mov dword [ebp - 0x40], eax
mov eax, dword [ebp - 4]
mov dword [ebp - 0xc], 0x7fffffff
mov ecx, dword [ecx + 0xc]
mov eax, dword [eax + 4]
test byte [ebp + 0x31], 4
mov esi, dword [ecx + eax*4 + 8]
je 0x2805bb0e
push dword [ebp - 8]
push dword [ebp + 0x14]
push ebx
push edi
push dword [ebp + 8]
call fcn.280598cf
add esp, 0x14
mov eax, dword [ebp + 0x30]
and eax, 0x1800
mov dword [ebp - 0x18], eax
je 0x2805bb2a
lea eax, [ebp - 0x11c]
push eax
push edi
call fcn.2805c470
pop ecx
pop ecx
cmp dword [esi + 0x1c], 0
jne 0x2805bb41
mov eax, dword [esi + 0x2c]
mov dword [ebp - 0xc], eax
mov eax, dword [esi + 0x30]
mov dword [ebp - 0x14], eax
jmp 0x2805bcdf
and dword [ebp + 0x20], 0
push 1
pop eax
cmp dword [esi + 0x38], eax
mov dword [ebp - 0x1c], eax
jb 0x2805bcdf
xor edx, edx
xor edi, edi
cmp ebx, edx
mov dword [ebp - 0x28], edx
mov dword [ebp - 0x7c], edx
je 0x2805bb6d
mov eax, dword [ebx + 0x44]
mov dword [ebp - 0x78], eax
mov eax, dword [ebx + 0x48]
jmp 0x2805bb73
lea eax, [ebp - 0xc0]
cmp dword [ebp - 0x18], edx
mov dword [ebp - 0x74], eax
mov eax, dword [ebp - 0x24]
mov dword [ebp - 0xb8], eax
je 0x2805bba3
lea eax, [ebp - 0x174]
push eax
push dword [ebp + 0xc]
call fcn.28059aa3
pop ecx
lea eax, [ebp - 0x174]
pop ecx
mov dword [ebp - 0x70], eax
mov edx, 0x800
mov eax, 0x2000
test dword [ebp + 0x30], eax
je 0x2805bbaf
or edx, eax
mov eax, dword [esi + 0x1c]
mov ecx, dword [ebp - 0x1c]
mov cx, word [eax + ecx*2]
test cx, cx
je 0x2805bc0f
cmp dword [ebp + 0x20], 0
jne 0x2805bbd0
movzx eax, word [eax]
mov edi, dword [ebp - 0x20]
lea eax, [edi + eax*4]
mov dword [ebp + 0x20], eax
movzx eax, cx
mov ecx, dword [ebp - 0x20]
lea eax, [ecx + eax*4]
mov dword [ebp - 4], eax
mov eax, dword [ebp + 0x34]
inc eax
push eax
push edx
push 0
lea eax, [ebp - 0xbc]
push dword [ebp + 0x28]
push dword [ebp + 0x24]
push eax
lea eax, [ebp - 0x28]
push dword [ebp + 0x20]
push eax
lea eax, [ebp - 4]
push dword [ebp + 0x14]
push eax
push dword [ebp + 0xc]
push dword [ebp + 8]
call fcn.28059e20
add esp, 0x30
mov edi, eax
mov eax, dword [ebp + 0x20]
test eax, eax
je 0x2805bc33
movzx eax, byte [eax + 1]
cmp byte [eax + sym.perl510.dll_PL_regkind], 0x1f
jne 0x2805bc33
push dword [ebp + 0x20]
push dword [ebp + 8]
call sym.perl510.dll_Perl_regnext
pop ecx
mov dword [ebp + 0x20], eax
pop ecx
mov eax, dword [esi + 0x2c]
add eax, edi
cmp dword [ebp - 0xc], eax
jle 0x2805bc40
mov dword [ebp - 0xc], eax
mov ecx, dword [ebp - 0x28]
mov eax, dword [esi + 0x30]
add edi, ecx
add eax, edi
cmp dword [ebp - 0x14], eax
jge 0x2805bc52
mov dword [ebp - 0x14], eax
cmp ecx, 0x7fffffff
jne 0x2805bc63
push 1
pop eax
mov dword [ebp - 0x3c], eax
mov dword [ebp - 8], eax
test word [ebp - 0x7c], 0x180
je 0x2805bc6e
inc dword [ebp - 0x2c]
mov ecx, 0x8000
test dword [ebp - 0x7c], ecx
je 0x2805bc93
mov eax, dword [ebp - 0x10]
mov edx, dword [ebp - 0xc]
add eax, edx
cmp dword [ebp - 0x50], eax
jle 0x2805bc88
mov dword [ebp - 0x50], eax
and byte [ebp + 0x31], 0xfb
test ebx, ebx
je 0x2805bcaa
or dword [ebx + 0x40], ecx
test ebx, ebx
je 0x2805bcaa
mov eax, 0x200
test dword [ebp - 0x7c], eax
je 0x2805bca4
or dword [ebx + 0x40], eax
mov eax, dword [ebp - 0x78]
mov dword [ebx + 0x44], eax
mov eax, dword [ebp + 0x30]
and eax, 0x1800
mov dword [ebp - 0x18], eax
je 0x2805bcd0
lea eax, [ebp - 0x174]
push eax
lea eax, [ebp - 0x11c]
push eax
push dword [ebp + 0xc]
call fcn.2805c53f
add esp, 0xc
inc dword [ebp - 0x1c]
mov eax, dword [ebp - 0x1c]
cmp eax, dword [esi + 0x38]
jbe 0x2805bb54
test byte [ebp + 0x31], 4
mov esi, dword [ebp - 0xc]
je 0x2805bd06
mov eax, dword [ebp - 0x14]
add dword [ebx], esi
mov ecx, eax
sub ecx, esi
add dword [ebx + 4], ecx
cmp eax, esi
jne 0x2805bcfe
cmp dword [ebp - 8], 0
je 0x2805bd09
lea ecx, [ebx + 0x2c]
mov dword [ebx + 0x18], ecx
jmp 0x2805bd09
mov eax, dword [ebp - 0x14]
add dword [ebp - 0x10], esi
sub eax, esi
add dword [ebp - 0x24], eax
test byte [ebp + 0x31], 0x10
je 0x2805bd43
lea eax, [ebp - 0x11c]
push eax
push dword [ebx + 0x4c]
push dword [ebp + 0xc]
call fcn.2805c53f
add esp, 0xc
test esi, esi
je 0x2805bd9b
push dword [ebp + 0x2c]
push dword [ebx + 0x4c]
call fcn.2805c49e
and byte [ebp + 0x31], 0xe7
pop ecx
pop ecx
jmp 0x2805bd9b
test byte [ebp + 0x31], 8
je 0x2805bd9b
test esi, esi
je 0x2805bd59
lea eax, [ebp - 0x11c]
push eax
push dword [ebx + 0x4c]
jmp 0x2805bd36
push 0x2c
call sym.perl510.dll_Perl_safesysmalloc
mov edi, eax
push 0x11
push edi
mov dword [ebp + 0x2c], edi
push dword [ebp + 8]
call sym.perl510.dll_Perl_save_pushptr
mov esi, dword [ebx + 0x4c]
mov eax, dword [ebp + 0x30]
add esp, 0x10
and ah, 0xf7
or ah, 0x10
push 0xb
mov dword [ebp + 0x30], eax
pop ecx
rep movsd dword es:[edi], dword [esi]
mov edi, dword [ebx + 0x4c]
push 0xb
pop ecx
lea esi, [ebp - 0x11c]
rep movsd dword es:[edi], dword [esi]
mov eax, dword [ebx + 0x4c]
or byte [eax], 0x10
mov eax, dword [ebp - 0x40]
jmp 0x2805a1ad
xor esi, esi
cmp al, 0x34
je 0x2805be91
cmp al, 0x41
jne 0x2805bddf
mov ecx, dword [ebp - 4]
mov edi, dword [ebp + 0xc]
mov edx, dword [ecx + 8]
mov edi, dword [edi + 0x70]
mov eax, dword [ecx + 4]
mov dword [edi + edx*4], ecx
mov ecx, dword [ebp + 0xc]
mov dword [ebp + 0x20], eax
mov edx, dword [ecx + 0x54]
shl eax, 2
mov edx, dword [edx + eax - 4]
mov dword [ebp - 0x38], edx
mov edx, dword [ecx + 0x58]
mov eax, dword [edx + eax - 4]
jmp 0x2805bdf1
mov ecx, dword [ebp + 0xc]
mov dword [ebp + 0x20], esi
mov eax, dword [ecx + 0xc]
add eax, 0x14
mov dword [ebp - 0x38], eax
mov eax, dword [ecx + 0x5c]
cmp dword [ebp + 0x28], 0
mov dword [ebp - 0x30], eax
jne 0x2805be1a
mov eax, dword [ecx + 0x3c]
push 1
sar eax, 3
inc eax
push eax
call sym.perl510.dll_Perl_safesyscalloc
push 0x11
push eax
push dword [ebp + 8]
mov dword [ebp + 0x28], eax
call sym.perl510.dll_Perl_save_pushptr
add esp, 0x14
mov eax, dword [ebp + 0x20]
mov edx, dword [ebp + 0x28]
inc eax
push 1
mov ecx, eax
sar eax, 3
and ecx, 7
lea edi, [eax + edx]
pop edx
shl edx, cl
mov al, byte [edi]
mov dword [ebp - 0x40], ecx
test al, dl
jne 0x2805be4e
mov dl, 1
push 0x10
shl dl, cl
or dl, al
mov byte [edi], dl
call sym.perl510.dll_Perl_safesysmalloc
pop ecx
mov esi, eax
jmp 0x2805beb8
test byte [ebp + 0x31], 4
je 0x2805be6f
push dword [ebp - 8]
push dword [ebp + 0x14]
push ebx
push dword [ebp + 0xc]
push dword [ebp + 8]
call fcn.280598cf
lea eax, [ebx + 0x2c]
add esp, 0x14
mov dword [ebx + 0x18], eax
test byte [ebp + 0x31], 0x10
push 1
pop eax
mov dword [ebp - 0x3c], eax
mov dword [ebp - 8], eax
je 0x2805be8b
push dword [ebx + 0x4c]
push dword [ebp + 0xc]
call fcn.28059ac5
pop ecx
pop ecx
and byte [ebp + 0x31], 0xe7
jmp 0x2805beb8
push 0x10
call sym.perl510.dll_Perl_safesysmalloc
mov esi, eax
mov eax, dword [ebp + 0x24]
mov dword [ebp + 0x20], eax
mov eax, dword [ebp - 4]
push eax
push dword [ebp + 8]
lea ecx, [eax + 8]
mov dword [ebp - 0x38], ecx
call sym.perl510.dll_Perl_regnext
add esp, 0xc
mov dword [ebp - 0x30], eax
test esi, esi
je 0x2805a1a0
push 0x11
push esi
push dword [ebp + 8]
call sym.perl510.dll_Perl_save_pushptr
push dword [ebp - 4]
push dword [ebp + 8]
call sym.perl510.dll_Perl_regnext
mov dword [esi + 4], eax
mov eax, dword [ebp + 0x1c]
mov dword [esi], eax
mov eax, dword [ebp + 0x24]
mov dword [esi + 0xc], eax
mov eax, dword [ebp - 0x58]
mov dword [esi + 8], eax
mov eax, dword [ebp - 0x38]
mov dword [ebp - 4], eax
mov eax, dword [ebp + 0x20]
mov dword [ebp + 0x24], eax
mov eax, dword [ebp - 0x30]
add esp, 0x14
mov dword [ebp - 0x58], esi
mov dword [ebp + 0x1c], eax
jmp 0x28059ea0
push esi
push dword [ebp + 8]
call sym.perl510.dll_Perl_regnext
movzx eax, byte [eax + 1]
pop ecx
pop ecx
mov ecx, dword [ebp - 4]
movzx esi, byte [ecx + 1]
cmp eax, esi
mov dword [ebp - 0x38], esi
je 0x2805bf40
cmp esi, 0x35
je 0x2805bf40
cmp esi, 0x38
jne 0x2805bf37
add dword [ebp - 4], 8
jmp 0x28059ea0
add dword [ebp - 4], 4
jmp 0x28059ea0
and dword [ebp - 0x14], 0
and dword [ebp - 0x30], 0
mov eax, dword [ebp - 4]
mov dword [ebp + 0x20], 0x7fffffff
test byte [ebp + 0x31], 4
mov dword [ebp - 0xc], eax
je 0x2805bf70
push dword [ebp - 8]
push dword [ebp + 0x14]
push ebx
push dword [ebp + 0xc]
push dword [ebp + 8]
call fcn.280598cf
add esp, 0x14
mov eax, dword [ebp + 0x30]
and eax, 0x1800
mov dword [ebp - 0x18], eax
je 0x2805bf8e
lea eax, [ebp - 0x148]
push eax
push dword [ebp + 0xc]
call fcn.2805c470
pop ecx
pop ecx
mov eax, dword [ebp - 4]
movzx eax, byte [eax + 1]
cmp eax, esi
jne 0x2805c0ef
mov eax, dword [ebp + 0x34]
inc eax
mov dword [ebp - 0x40], eax
xor esi, esi
inc dword [ebp - 0x30]
cmp ebx, esi
mov dword [ebp - 0x7c], esi
je 0x2805bfbb
mov eax, dword [ebx + 0x44]
mov dword [ebp - 0x78], eax
mov eax, dword [ebx + 0x48]
jmp 0x2805bfc1
lea eax, [ebp - 0xc4]
push dword [ebp - 4]
mov dword [ebp - 0x74], eax
mov eax, dword [ebp - 0x24]
push dword [ebp + 8]
mov dword [ebp - 0xb8], eax
call sym.perl510.dll_Perl_regnext
add dword [ebp - 4], 4
cmp dword [ebp - 0x38], 0x1f
pop ecx
mov edi, eax
pop ecx
je 0x2805bfea
add dword [ebp - 4], 4
cmp dword [ebp - 0x18], 0
je 0x2805c00f
lea eax, [ebp - 0x1a0]
push eax
push dword [ebp + 0xc]
call fcn.28059aa3
pop ecx
lea eax, [ebp - 0x1a0]
pop ecx
mov dword [ebp - 0x70], eax
mov esi, 0x800
mov eax, 0x2000
test dword [ebp + 0x30], eax
je 0x2805c01b
or esi, eax
push dword [ebp - 0x40]
lea eax, [ebp - 0xbc]
push esi
push 0
push dword [ebp + 0x28]
push dword [ebp + 0x24]
push eax
lea eax, [ebp - 0x68]
push edi
push eax
push dword [ebp + 0x14]
lea eax, [ebp - 4]
push eax
push dword [ebp + 0xc]
push dword [ebp + 8]
call fcn.28059e20
add esp, 0x30
cmp dword [ebp + 0x20], eax
jle 0x2805c050
mov dword [ebp + 0x20], eax
mov edx, dword [ebp - 0x68]
lea ecx, [edx + eax]
cmp dword [ebp - 0x14], ecx
jge 0x2805c05e
mov dword [ebp - 0x14], ecx
cmp edx, 0x7fffffff
jne 0x2805c06f
push 1
pop ecx
mov dword [ebp - 0x3c], ecx
mov dword [ebp - 8], ecx
test word [ebp - 0x7c], 0x180
mov dword [ebp - 4], edi
je 0x2805c07d
inc dword [ebp - 0x2c]
mov ecx, 0x8000
test dword [ebp - 0x7c], ecx
je 0x2805c0a2
cmp dword [ebp - 0x50], eax
jle 0x2805c097
mov eax, dword [ebp - 0x10]
mov edx, dword [ebp + 0x20]
add edx, eax
mov dword [ebp - 0x50], edx
and byte [ebp + 0x31], 0xfb
test ebx, ebx
je 0x2805c0b9
or dword [ebx + 0x40], ecx
test ebx, ebx
je 0x2805c0b9
mov eax, 0x200
test dword [ebp - 0x7c], eax
je 0x2805c0b3
or dword [ebx + 0x40], eax
mov eax, dword [ebp - 0x78]
mov dword [ebx + 0x44], eax
mov eax, dword [ebp + 0x30]
and eax, 0x1800
mov dword [ebp - 0x18], eax
je 0x2805c0df
lea eax, [ebp - 0x1a0]
push eax
lea eax, [ebp - 0x148]
push eax
push dword [ebp + 0xc]
call fcn.2805c53f
add esp, 0xc
mov eax, dword [ebp - 4]
movzx eax, byte [eax + 1]
cmp eax, dword [ebp - 0x38]
je 0x2805bfa4
cmp dword [ebp - 0x38], 0x35
jne 0x2805c0ff
cmp dword [ebp - 0x30], 2
jge 0x2805c0ff
xor esi, esi
jmp 0x2805c102
mov esi, dword [ebp + 0x20]
test byte [ebp + 0x31], 4
je 0x2805c126
mov eax, dword [ebp - 0x14]
add dword [ebx], esi
mov ecx, eax
sub ecx, esi
add dword [ebx + 4], ecx
cmp eax, esi
jne 0x2805c11e
cmp dword [ebp - 8], 0
je 0x2805c129
lea ecx, [ebx + 0x2c]
mov dword [ebx + 0x18], ecx
jmp 0x2805c129
mov eax, dword [ebp - 0x14]
add dword [ebp - 0x10], esi
sub eax, esi
add dword [ebp - 0x24], eax
test byte [ebp + 0x31], 0x10
je 0x2805c163
lea eax, [ebp - 0x148]
push eax
push dword [ebx + 0x4c]
push dword [ebp + 0xc]
call fcn.2805c53f
add esp, 0xc
test esi, esi
je 0x2805c1bb
push dword [ebp + 0x2c]
push dword [ebx + 0x4c]
call fcn.2805c49e
and byte [ebp + 0x31], 0xe7
pop ecx
pop ecx
jmp 0x2805c1bb
test byte [ebp + 0x31], 8
je 0x2805c1bb
test esi, esi
je 0x2805c179
lea eax, [ebp - 0x148]
push eax
push dword [ebx + 0x4c]
jmp 0x2805c156
push 0x2c
call sym.perl510.dll_Perl_safesysmalloc
mov edi, eax
push 0x11
push edi
mov dword [ebp + 0x2c], edi
push dword [ebp + 8]
call sym.perl510.dll_Perl_save_pushptr
mov esi, dword [ebx + 0x4c]
mov eax, dword [ebp + 0x30]
add esp, 0x10
and ah, 0xf7
or ah, 0x10
push 0xb
mov dword [ebp + 0x30], eax
pop ecx
rep movsd dword es:[edi], dword [esi]
mov edi, dword [ebx + 0x4c]
push 0xb
pop ecx
lea esi, [ebp - 0x148]
rep movsd dword es:[edi], dword [esi]
mov eax, dword [ebx + 0x4c]
or byte [eax], 0x10
mov eax, dword [ebp - 0xc]
cmp byte [eax + 1], 0x1f
jne 0x28059ea0
mov esi, dword [ebp - 0x60]
test esi, esi
jne 0x2805c1fd
push 1
push 0x280ba850
push dword [ebp + 8]
call sym.perl510.dll_Perl_get_sv
mov esi, eax
add esp, 0xc
mov dword [ebp - 0x60], esi
test byte [esi + 9], 1
jne 0x2805c203
push 0x10000
push esi
push dword [ebp + 8]
call sym.perl510.dll_Perl_sv_setiv
add esp, 0xc
test byte [esi + 9], 1
je 0x2805c20a
mov eax, dword [esi]
mov eax, dword [eax + 0x10]
jmp 0x2805c218
push 2
push esi
push dword [ebp + 8]
call sym.perl510.dll_Perl_sv_2iv_flags
add esp, 0xc
test eax, eax
jl 0x28059ea0
mov eax, dword [ebp - 4]
xor edi, edi
and byte [ebp + 0x23], 0
mov dword [ebp - 0x14], edi
mov dword [ebp - 0x1c], eax
mov dword [ebp - 0x18], edi
cmp byte [eax + 1], 0x25
jne 0x2805c248
push eax
push dword [ebp + 8]
call sym.perl510.dll_Perl_regnext
pop ecx
mov dword [ebp - 0x1c], eax
pop ecx
jmp 0x2805c232
mov esi, dword [ebp - 0xc]
cmp esi, dword [ebp - 4]
je 0x28059ea0
test edi, edi
je 0x2805c26b
cmp byte [ebp + 0x23], 0x24
je 0x2805c26b
mov al, byte [esi + 5]
xor ecx, ecx
cmp al, byte [ebp + 0x23]
sete cl
jmp 0x2805c27f
mov al, byte [esi + 5]
xor edx, edx
movzx ecx, al
cmp byte [ecx + sym.perl510.dll_PL_regkind], 0x21
sete dl
mov ecx, edx
test ecx, ecx
jne 0x2805c287
cmp al, 0x24
jne 0x2805c2a9
cmp dword [ebp - 0x18], 0xffff
jae 0x2805c2a9
inc dword [ebp - 0x18]
test edi, edi
je 0x2805c2a2
cmp byte [ebp + 0x23], 0x24
je 0x2805c2a4
mov dword [ebp - 0x14], esi
jmp 0x2805c2fc
mov edi, esi
mov byte [ebp + 0x23], al
jmp 0x2805c2fc
cmp dword [ebp - 0x14], 0
je 0x2805c2d2
mov eax, dword [ebp + 0x34]
inc eax
push eax
movzx eax, byte [ebp + 0x23]
push eax
push dword [ebp - 0x18]
push dword [ebp - 0x1c]
push esi
push edi
push dword [ebp - 0xc]
push dword [ebp + 0xc]
push dword [ebp + 8]
call fcn.2805c60b
add esp, 0x24
mov al, byte [esi + 5]
movzx ecx, al
cmp byte [ecx + sym.perl510.dll_PL_regkind], 0x21
jne 0x2805c2ef
mov dword [ebp - 0x18], 1
mov edi, esi
mov byte [ebp + 0x23], al
jmp 0x2805c2f8
xor edi, edi
and byte [ebp + 0x23], 0
mov dword [ebp - 0x18], edi
and dword [ebp - 0x14], 0
push esi
push dword [ebp + 8]
call sym.perl510.dll_Perl_regnext
mov esi, eax
pop ecx
cmp esi, dword [ebp - 4]
pop ecx
jne 0x2805c254
cmp dword [ebp - 0x14], 0
je 0x28059ea0
mov esi, dword [ebp + 0x34]
lea eax, [esi + 1]
push eax
movzx eax, byte [ebp + 0x23]
push eax
push dword [ebp - 0x18]
push dword [ebp - 0x1c]
push dword [ebp - 4]
push edi
push dword [ebp - 0xc]
push dword [ebp + 0xc]
push dword [ebp + 8]
call fcn.2805c60b
add esp, 0x24
cmp eax, 4
jne 0x2805c34d
cmp dword [ebp - 0xc], edi
je 0x2805c356
cmp dword [ebp - 0x5c], edi
jne 0x28059ea0
test esi, esi
jne 0x28059ea0
or byte [ebp + 0x31], 0x40
cmp dword [ebp - 0xc], edi
jne 0x28059ea0
mov eax, dword [ebp - 4]
cmp eax, dword [ebp - 0x1c]
jne 0x28059ea0
mov eax, dword [ebp + 0xc]
and dword [eax + 0x34], 0xffffffbf
jmp 0x28059ea0
mov eax, dword [ebp - 0x58]
xor ecx, ecx
cmp eax, ecx
je 0x2805c3b0
mov ecx, dword [eax]
mov dword [ebp + 0x1c], ecx
mov ecx, dword [eax + 4]
mov dword [ebp - 4], ecx
mov ecx, dword [eax + 0xc]
mov eax, dword [eax + 8]
mov dword [ebp + 0x24], ecx
mov dword [ebp - 0x58], eax
jmp 0x28059ea0
add edx, 4
xor ecx, ecx
mov dword [ebp - 4], edx
mov eax, dword [ebp + 0x10]
mov edx, dword [ebp - 4]
cmp dword [ebp - 0x3c], ecx
pop edi
mov dword [eax], edx
pop esi
mov eax, 0x7fffffff
jne 0x2805c3c7
mov eax, dword [ebp - 0x24]
mov edx, dword [ebp + 0x18]
test byte [ebp + 0x31], 4
mov dword [edx], eax
je 0x2805c3e1
cmp dword [ebp - 8], ecx
je 0x2805c3e1
mov eax, 0x7fffffff
sub eax, dword [ebx]
mov dword [ebx + 4], eax
cmp dword [ebp - 0x54], 0xff
jle 0x2805c3ed
mov dword [ebp - 0x54], ecx
cmp dword [ebp - 0x54], ecx
je 0x2805c406
cmp dword [ebp - 0x2c], 1
jne 0x2805c406
cmp ebx, ecx
je 0x2805c41a
mov eax, dword [ebx + 0x40]
and al, 0x7f
or ah, 1
jmp 0x2805c417
cmp dword [ebp - 0x2c], ecx
je 0x2805c41a
cmp ebx, ecx
je 0x2805c41a
mov eax, dword [ebx + 0x40]
and ah, 0xfe
or al, 0x80
mov dword [ebx + 0x40], eax
test byte [ebp + 0x31], 0x10
je 0x2805c42d
push dword [ebp + 0x2c]
push dword [ebx + 0x4c]
call fcn.2805c49e
pop ecx
pop ecx
mov eax, 0x4000
test dword [ebp + 0x30], eax
je 0x2805c43a
or dword [ebx + 0x40], eax
mov eax, dword [ebp - 0x50]
pop ebx
cmp dword [ebp - 0x10], eax
jge 0x2805c446
mov eax, dword [ebp - 0x10]
leave
ret