Function at 0x52852f
Capabilities:
Check http status code
Parse credit card information

Disassembly:
push ebp
mov ebp, esp
add esp, 0xfffffba8
push ebx
push esi
push edi
mov esi, dword [ebp + 0x10]
mov edi, 3
xor eax, eax
mov dword [ebp - 0x10], eax
xor edx, edx
mov dword [ebp - 0x14], edx
xor ecx, ecx
mov dword [ebp - 0x18], ecx
xor eax, eax
mov dword [ebp - 0x20], eax
mov dword [ebp - 0x30], 1
test byte [ebp + 0xd], 8
je 0x528571
mov dword [esi], str.this_version_of_PCRE_is_not_compiled_with_PCRE_UTF8_support
xor eax, eax
jmp 0x528ee7
test esi, esi
jne 0x52857c
xor eax, eax
jmp 0x528ee7
xor edx, edx
mov dword [esi], edx
cmp dword [ebp + 0x14], 0
jne 0x528593
mov dword [esi], str.erroffset_passed_as_NULL
xor eax, eax
jmp 0x528ee7
mov edx, dword [ebp + 0x14]
xor ecx, ecx
mov dword [edx], ecx
test dword [ebp + 0xc], 0xfffff580
je 0x5285b0
mov dword [esi], str.unknown_option_bit_s__set
xor eax, eax
jmp 0x528ee7
cmp dword [ebp + 0x18], 0
jne 0x5285bd
mov dword [ebp + 0x18], 0x56d824
mov edx, dword [ebp + 0x18]
mov dword [ebp - 0x70], edx
mov ecx, dword [ebp + 0x18]
add ecx, 0x100
mov dword [ebp - 0x6c], ecx
mov eax, dword [ebp + 0x18]
add eax, 0x200
mov dword [ebp - 0x68], eax
mov edx, dword [ebp + 0x18]
add edx, 0x340
mov dword [ebp - 0x64], edx
mov ecx, dword [ebp + 8]
mov dword [ebp - 0x2c], ecx
mov eax, dword [ebp - 0x20]
lea edx, [ebp + eax*4 - 0x390]
mov dword [ebp - 0x60], edx
mov ecx, dword [ebp - 0x20]
lea eax, [ebp + ecx - 0x458]
jmp 0x528d72
cmp dword [ebp - 0x30], 0
je 0x528615
xor edx, edx
mov dword [ebp - 0x30], edx
jmp 0x528618
inc dword [ebp - 0x2c]
mov ecx, dword [ebp - 0x2c]
xor ebx, ebx
mov bl, byte [ecx]
test ebx, ebx
je 0x528d7e
test byte [ebp + 0xc], 8
je 0x528650
mov edx, dword [ebp - 0x64]
test byte [edx + ebx], 1
jne 0x5285ec
cmp ebx, 0x23
jne 0x528650
inc dword [ebp - 0x2c]
mov eax, dword [ebp - 0x2c]
xor ebx, ebx
mov bl, byte [eax]
test ebx, ebx
je 0x5285ec
cmp ebx, 0xa
jne 0x52863b
jmp 0x5285ec
mov edx, ebx
cmp edx, 0x3f
jg 0x52869c
je case.0x528669.36
add edx, 0xffffffdc
cmp edx, 0xa
ja case.0x528669.37
jmp dword [edx*4 + 0x528670]
cmp edx, 0x5e
jg 0x5286b8
je case.0x528669.36
sub edx, 0x5b
je 0x52884a
dec edx
je 0x5286cd
jmp case.0x528669.37
sub edx, 0x7b
je 0x5287ad
dec edx
je 0x52883d
jmp case.0x528669.37
mov eax, dword [ebp - 0x2c]
mov dword [ebp - 0x40], eax
lea ecx, [ebp - 0x70]
push ecx
push 0
push dword [ebp + 0xc]
push dword [ebp - 0x10]
push esi
lea eax, [ebp - 0x2c]
push eax
call fcn.00526bb6
mov ebx, eax
cmp dword [esi], 0
jne 0x528e69
test ebx, ebx
jl 0x528708
mov eax, dword [ebp - 0x40]
mov dword [ebp - 0x2c], eax
mov ebx, 0x5c
jmp case.0x528669.37
inc edi
cmp ebx, 0xfffffff4
jg 0x5285ec
mov eax, ebx
neg eax
add eax, 0xfffffff4
cmp eax, dword [ebp - 0x14]
jle 0x528721
mov dword [ebp - 0x14], eax
add edi, 2
mov edx, dword [ebp - 0x2c]
cmp byte [edx + 1], 0x7b
jne 0x5285ec
lea ecx, [ebp - 0x70]
push ecx
mov eax, dword [ebp - 0x2c]
add eax, 2
push eax
call fcn.00526d4d
test eax, eax
je 0x5285ec
lea edx, [ebp - 0x70]
push edx
push esi
lea ecx, [ebp - 0x38]
push ecx
lea eax, [ebp - 0x34]
push eax
mov edx, dword [ebp - 0x2c]
add edx, 2
push edx
call fcn.00526dd1
mov dword [ebp - 0x2c], eax
cmp dword [esi], 0
jne 0x528e69
cmp dword [ebp - 0x34], 0
jne 0x528780
cmp dword [ebp - 0x38], 1
je 0x52878c
cmp dword [ebp - 0x38], 0xffffffff
je 0x52878c
cmp dword [ebp - 0x34], 1
jne 0x52878f
cmp dword [ebp - 0x38], 0xffffffff
jne 0x52878f
inc edi
jmp 0x528792
add edi, 5
mov ecx, dword [ebp - 0x2c]
cmp byte [ecx + 1], 0x3f
jne 0x5285ec
inc dword [ebp - 0x2c]
jmp 0x5285ec
inc edi
jmp 0x5285ec
lea eax, [ebp - 0x70]
push eax
mov edx, dword [ebp - 0x2c]
inc edx
push edx
call fcn.00526d4d
test eax, eax
je case.0x528669.37
lea ecx, [ebp - 0x70]
push ecx
push esi
lea eax, [ebp - 0x38]
push eax
lea edx, [ebp - 0x34]
push edx
mov ecx, dword [ebp - 0x2c]
inc ecx
push ecx
call fcn.00526dd1
mov dword [ebp - 0x2c], eax
cmp dword [esi], 0
jne 0x528e69
cmp dword [ebp - 0x34], 0
jne 0x5287f8
cmp dword [ebp - 0x38], 1
je 0x528804
cmp dword [ebp - 0x38], 0xffffffff
je 0x528804
cmp dword [ebp - 0x34], 1
jne 0x528807
cmp dword [ebp - 0x38], 0xffffffff
jne 0x528807
inc edi
jmp 0x528828
dec edi
cmp dword [ebp - 0x34], 1
jne 0x528811
inc edi
jmp 0x52881a
cmp dword [ebp - 0x34], 0
jle 0x52881a
add edi, 4
cmp dword [ebp - 0x38], 0
jle 0x528825
add edi, 4
jmp 0x528828
add edi, 2
mov eax, dword [ebp - 0x2c]
cmp byte [eax + 1], 0x3f
jne 0x5285ec
inc dword [ebp - 0x2c]
jmp 0x5285ec
mov edx, dword [ebp - 0x18]
add edx, 3
add edi, edx
jmp 0x5285ec
xor ebx, ebx
inc dword [ebp - 0x2c]
mov eax, dword [ebp - 0x2c]
cmp byte [eax], 0x5e
jne 0x52885a
inc dword [ebp - 0x2c]
mov edx, dword [ebp - 0x2c]
cmp byte [edx], 0x5c
jne 0x528892
lea ecx, [ebp - 0x70]
push ecx
push 1
push dword [ebp + 0xc]
push dword [ebp - 0x10]
push esi
lea eax, [ebp - 0x2c]
push eax
call fcn.00526bb6
cmp dword [esi], 0
jne 0x528e69
neg eax
cmp eax, 3
jne 0x52888b
inc ebx
jmp 0x528893
mov ebx, 0xa
jmp 0x528893
inc ebx
inc dword [ebp - 0x2c]
mov eax, dword [ebp - 0x2c]
mov al, byte [eax]
test al, al
je 0x5288a3
cmp al, 0x5d
jne 0x52885a
dec ebx
jne 0x5288ae
add edi, 3
jmp 0x5285ec
add edi, 0x21
mov edx, dword [ebp - 0x2c]
cmp byte [edx], 0
je 0x5285ec
mov ecx, dword [ebp - 0x2c]
cmp byte [ecx + 1], 0x7b
jne 0x5285ec
lea eax, [ebp - 0x70]
push eax
mov edx, dword [ebp - 0x2c]
add edx, 2
push edx
call fcn.00526d4d
test eax, eax
je 0x5285ec
lea ecx, [ebp - 0x70]
push ecx
push esi
lea eax, [ebp - 0x38]
push eax
lea edx, [ebp - 0x34]
push edx
mov ecx, dword [ebp - 0x2c]
add ecx, 2
push ecx
call fcn.00526dd1
mov dword [ebp - 0x2c], eax
cmp dword [esi], 0
jne 0x528e69
cmp dword [ebp - 0x34], 0
jne 0x528919
cmp dword [ebp - 0x38], 1
je 0x528925
cmp dword [ebp - 0x38], 0xffffffff
je 0x528925
cmp dword [ebp - 0x34], 1
jne 0x528928
cmp dword [ebp - 0x38], 0xffffffff
jne 0x528928
inc edi
jmp 0x52892b
add edi, 5
mov eax, dword [ebp - 0x2c]
cmp byte [eax + 1], 0x3f
jne 0x5285ec
inc dword [ebp - 0x2c]
jmp 0x5285ec
xor edx, edx
mov dword [ebp - 0x1c], edx
mov dword [ebp - 0x3c], 3
mov ecx, dword [ebp - 0x2c]
cmp byte [ecx + 1], 0x3f
jne 0x528b9b
mov edx, dword [ebp - 0x2c]
xor ebx, ebx
mov bl, byte [edx + 2]
mov edx, ebx
cmp edx, 0x3a
jg 0x528982
je 0x5289c4
sub edx, 0x21
je 0x5289c4
sub edx, 2
je 0x528997
sub edx, 5
je 0x528a1b
jmp 0x528aa1
sub edx, 0x3c
je 0x5289eb
dec edx
sub edx, 2
jb 0x5289c4
sub edx, 0x13
je 0x5289cd
jmp 0x528aa1
add dword [ebp - 0x2c], 3
jmp 0x5289a0
inc dword [ebp - 0x2c]
mov eax, dword [ebp - 0x2c]
mov al, byte [eax]
test al, al
je 0x5289ad
cmp al, 0x29
jne 0x52899d
mov edx, dword [ebp - 0x2c]
cmp byte [edx], 0
jne 0x5285ec
mov dword [esi], str.missing___after_comment
jmp 0x528e69
add dword [ebp - 0x2c], 2
jmp 0x528bab
mov ecx, dword [ebp - 0x2c]
cmp byte [ecx + 3], 0x29
je 0x5289e1
mov dword [esi], str.__p_must_be_followed_by__
jmp 0x528e69
add dword [ebp - 0x2c], 3
inc edi
jmp 0x528bab
mov edx, dword [ebp - 0x2c]
cmp byte [edx + 3], 0x3d
je 0x5289fd
mov ecx, dword [ebp - 0x2c]
cmp byte [ecx + 3], 0x21
jne 0x528a10
add dword [ebp - 0x2c], 3
mov dword [ebp - 0x1c], 3
add edi, 3
jmp 0x528bab
mov dword [esi], str.unrecognized_character_after____
jmp 0x528e69
mov edx, dword [ebp - 0x2c]
xor ecx, ecx
mov cl, byte [edx + 3]
mov edx, dword [ebp - 0x64]
test byte [edx + ecx], 4
je 0x528a5f
add dword [ebp - 0x2c], 4
add edi, 3
jmp 0x528a38
inc dword [ebp - 0x2c]
mov ecx, dword [ebp - 0x2c]
xor edx, edx
mov dl, byte [ecx]
mov ecx, dword [ebp - 0x64]
test byte [ecx + edx], 4
jne 0x528a35
mov edx, dword [ebp - 0x2c]
cmp byte [edx], 0x29
je 0x528bab
mov dword [esi], str.malformed_number_after____
jmp 0x528e69
inc dword [ebp - 0x2c]
mov ecx, dword [ebp - 0x2c]
cmp byte [ecx + 2], 0x3f
jne 0x528a92
mov edx, dword [ebp - 0x2c]
cmp byte [edx + 3], 0x3d
je 0x528bab
mov ecx, dword [ebp - 0x2c]
cmp byte [ecx + 3], 0x21
je 0x528bab
mov edx, dword [ebp - 0x2c]
cmp byte [edx + 3], 0x3c
je 0x528bab
add dword [ebp - 0x2c], 2
mov dword [esi], str.assertion_expected_after____
jmp 0x528e69
xor ecx, ecx
mov dword [ebp - 0x48], ecx
mov dword [ebp - 0x44], ecx
lea edx, [ebp - 0x44]
add dword [ebp - 0x2c], 2
mov ecx, dword [ebp - 0x2c]
xor ebx, ebx
mov bl, byte [ecx]
mov ecx, ebx
cmp ecx, 0x58
jg 0x528ad9
je 0x528b03
sub ecx, 0x29
je 0x528b15
sub ecx, 4
je 0x528b10
sub ecx, 0xd
je 0x528b33
sub ecx, 0x1b
je 0x528b08
jmp 0x528b5c
sub ecx, 0x69
je 0x528aef
sub ecx, 4
je 0x528af4
sub ecx, 6
je 0x528af9
sub ecx, 5
je 0x528afe
jmp 0x528b5c
or dword [edx], 1
jmp 0x528b67
or dword [edx], 2
jmp 0x528b67
or dword [edx], 4
jmp 0x528b67
or dword [edx], 8
jmp 0x528b67
or dword [edx], 0x40
jmp 0x528b67
or dword [edx], 0x200
jmp 0x528b67
lea edx, [ebp - 0x48]
jmp 0x528b67
cmp dword [ebp - 0x20], 0
jne 0x528b33
mov edx, dword [ebp + 0xc]
or edx, dword [ebp - 0x44]
mov ecx, dword [ebp - 0x48]
not ecx
and edx, ecx
mov dword [ebp + 0xc], edx
xor edx, edx
mov dword [ebp - 0x48], edx
mov dword [ebp - 0x44], edx
mov ecx, dword [ebp - 0x44]
or ecx, dword [ebp - 0x48]
test cl, 7
je 0x528b6f
add edi, 4
mov dword [ebp - 0x1c], 2
mov edx, dword [ebp - 0x44]
or edx, dword [ebp - 0x48]
test dl, 1
je 0x528b6f
or dword [ebp + 0xc], 0x4000000
jmp 0x528b6f
mov dword [esi], str.unrecognized_character_after___
jmp 0x528e69
inc dword [ebp - 0x2c]
jmp 0x528ab0
cmp ebx, 0x29
jne 0x528bab
cmp dword [ebp - 0x1c], 2
jne 0x5285ec
cmp dword [ebp - 0x18], 0
je 0x528b8e
cmp dword [ebp - 0x18], 3
jne 0x5285ec
mov eax, dword [ebp - 0x1c]
add dword [ebp - 0x18], eax
jmp 0x5285ec
inc dword [ebp - 0x10]
cmp dword [ebp - 0x10], 0x96
jle 0x528bab
add dword [ebp - 0x3c], 3
cmp dword [ebp - 0x20], 0xc8
jb 0x528bbf
mov dword [esi], str.parentheses_nested_too_deeply
jmp 0x528e69
mov cl, byte [ebp - 0x18]
mov byte [eax], cl
mov eax, dword [ebp - 0x1c]
mov dword [ebp - 0x18], eax
mov edx, dword [ebp - 0x60]
mov dword [edx], edi
inc dword [ebp - 0x20]
add edi, dword [ebp - 0x3c]
jmp 0x5285ec
add edi, 3
mov dword [ebp - 0x4c], 1
mov dword [ebp - 0x50], 1
cmp dword [ebp - 0x20], 0
jbe 0x528c0b
dec dword [ebp - 0x20]
add dword [ebp - 0x60], 0xfffffffc
dec eax
mov ecx, dword [ebp - 0x60]
mov edx, edi
sub edx, dword [ecx]
mov dword [ebp - 0x54], edx
movzx eax, byte [eax]
mov dword [ebp - 0x18], eax
jmp 0x528c10
xor ecx, ecx
mov dword [ebp - 0x54], ecx
mov eax, dword [ebp - 0x2c]
xor ebx, ebx
mov bl, byte [eax + 1]
cmp ebx, 0x7b
jne 0x528c58
lea eax, [ebp - 0x70]
push eax
mov edx, dword [ebp - 0x2c]
add edx, 2
push edx
call fcn.00526d4d
test eax, eax
je 0x528c58
lea ecx, [ebp - 0x70]
push ecx
push esi
lea eax, [ebp - 0x50]
push eax
lea edx, [ebp - 0x4c]
push edx
mov ecx, dword [ebp - 0x2c]
add ecx, 2
push ecx
call fcn.00526dd1
mov dword [ebp - 0x2c], eax
cmp dword [esi], 0
jne 0x528e69
jmp 0x528c8c
cmp ebx, 0x2a
jne 0x528c6e
xor eax, eax
mov dword [ebp - 0x4c], eax
mov dword [ebp - 0x50], 0xffffffff
inc dword [ebp - 0x2c]
jmp 0x528c8c
cmp ebx, 0x2b
jne 0x528c7f
mov dword [ebp - 0x50], 0xffffffff
inc dword [ebp - 0x2c]
jmp 0x528c8c
cmp ebx, 0x3f
jne 0x528c8c
xor edx, edx
mov dword [ebp - 0x4c], edx
inc dword [ebp - 0x2c]
cmp dword [ebp - 0x4c], 0
jne 0x528cb1
inc edi
cmp dword [ebp - 0x50], 0
jle 0x5285ec
mov ecx, dword [ebp - 0x50]
dec ecx
mov eax, dword [ebp - 0x54]
add eax, 7
imul ecx, eax
add edi, ecx
jmp 0x5285ec
mov edx, dword [ebp - 0x4c]
dec edx
imul edx, dword [ebp - 0x54]
add edi, edx
mov ecx, dword [ebp - 0x50]
cmp ecx, dword [ebp - 0x4c]
jle 0x5285ec
mov eax, dword [ebp - 0x50]
sub eax, dword [ebp - 0x4c]
mov edx, dword [ebp - 0x54]
add edx, 7
imul edx
add eax, 0xfffffffa
add edi, eax
jmp 0x5285ec
add edi, 2
xor ecx, ecx
mov dword [ebp - 4], ecx
test byte [ebp + 0xc], 8
je 0x528d10
mov eax, dword [ebp - 0x64]
test byte [eax + ebx], 1
jne 0x528d4b
cmp ebx, 0x23
jne 0x528d10
inc dword [ebp - 0x2c]
mov edx, dword [ebp - 0x2c]
xor ebx, ebx
mov bl, byte [edx]
test ebx, ebx
je 0x528d4b
cmp ebx, 0xa
jne 0x528cfb
jmp 0x528d4b
cmp ebx, 0x5c
jne 0x528d48
mov eax, dword [ebp - 0x2c]
mov dword [ebp - 0x58], eax
lea edx, [ebp - 0x70]
push edx
push 0
push dword [ebp + 0xc]
push dword [ebp - 0x10]
push esi
lea ecx, [ebp - 0x2c]
push ecx
call fcn.00526bb6
mov ebx, eax
cmp dword [esi], 0
jne 0x528e69
test ebx, ebx
jge 0x528d48
mov eax, dword [ebp - 0x58]
mov dword [ebp - 0x2c], eax
jmp 0x528d67
inc dword [ebp - 4]
cmp dword [ebp - 4], 0xff
jge 0x528d67
inc dword [ebp - 0x2c]
mov edx, dword [ebp - 0x2c]
xor ebx, ebx
mov bl, byte [edx]
mov eax, dword [ebp - 0x64]
test byte [eax + ebx], 0x80
je 0x528ce7
dec dword [ebp - 0x2c]
add edi, dword [ebp - 4]
jmp 0x5285ec
mov edx, dword [ebp - 0x2c]
cmp byte [edx], 0
jne 0x528608
add edi, 4
cmp edi, 0x10003
jle 0x528d96
mov dword [esi], str.regular_expression_too_large
xor eax, eax
jmp 0x528ee7
mov edx, edi
add edx, 0x16
mov dword [ebp - 0x24], edx
push dword [ebp - 0x24]
call fcn.00557db4
pop ecx
mov ebx, eax
test ebx, ebx
jne 0x528dba
mov dword [esi], str.failed_to_get_memory
xor eax, eax
jmp 0x528ee7
mov dword [ebx], 0x50435245
mov edx, dword [ebp - 0x24]
mov dword [ebx + 4], edx
mov ecx, dword [ebp + 0xc]
mov dword [ebx + 0xc], ecx
mov eax, dword [ebp + 0x18]
mov dword [ebx + 8], eax
mov edx, dword [ebp + 8]
mov dword [ebp - 0x2c], edx
lea ecx, [ebx + 0x16]
mov dword [ebp - 0x28], ecx
mov eax, dword [ebp - 0x28]
mov byte [eax], 0x47
xor edx, edx
mov dword [ebp - 0x10], edx
lea ecx, [ebp - 0x70]
push ecx
lea eax, [ebp - 0xc]
push eax
lea edx, [ebp - 8]
push edx
push 0
push 0
push esi
lea ecx, [ebp - 0x2c]
push ecx
lea eax, [ebp - 0x28]
push eax
lea edx, [ebp - 0x10]
push edx
push 0xffffffffffffffff
push dword [ebp + 0xc]
call fcn.00528121
mov cx, word [ebp - 0x10]
mov word [ebx + 0x10], cx
mov ax, word [ebp - 0x14]
mov word [ebx + 0x12], ax
cmp dword [esi], 0
jne 0x528e33
mov edx, dword [ebp - 0x2c]
cmp byte [edx], 0
je 0x528e33
mov dword [esi], str.unmatched_parentheses
mov ecx, dword [ebp - 0x28]
mov byte [ecx], 0
inc dword [ebp - 0x28]
lea eax, [ebx + 0x16]
mov edx, dword [ebp - 0x28]
sub edx, eax
cmp edi, edx
jge 0x528e4e
mov dword [esi], str.internal_error:_code_overflow
movzx ecx, word [ebx + 0x10]
cmp ecx, dword [ebp - 0x14]
jge 0x528e5d
mov dword [esi], str.back_reference_to_non_existent_subpattern
cmp dword [esi], 0
je 0x528e78
push ebx
call fcn.00557ca0
pop ecx
mov eax, dword [ebp - 0x2c]
sub eax, dword [ebp + 8]
mov edx, dword [ebp + 0x14]
mov dword [edx], eax
xor eax, eax
jmp 0x528ee7
test byte [ebp + 0xc], 0x10
jne 0x528ec6
mov edx, dword [ebp + 0xc]
mov dword [ebp - 0x5c], edx
lea ecx, [ebp - 0x5c]
push ecx
lea esi, [ebx + 0x16]
push esi
call fcn.00528365
test eax, eax
je 0x528e9b
or dword [ebx + 0xc], 0x10
jmp 0x528ec6
lea eax, [ebp - 0x5c]
push eax
push esi
call fcn.0052846f
test eax, eax
jl 0x528eb5
mov byte [ebx + 0x14], al
or dword [ebx + 0xc], 0x40000000
jmp 0x528ec6
push esi
call fcn.005283f4
test eax, eax
je 0x528ec6
or dword [ebx + 0xc], 0x10000000
cmp dword [ebp - 8], 0
jl 0x528ee5
cmp dword [ebp - 0xc], 1
jg 0x528ed8
test byte [ebx + 0xf], 0x40
jne 0x528ee5
mov dl, byte [ebp - 8]
mov byte [ebx + 0x15], dl
or dword [ebx + 0xc], 0x20000000
mov eax, ebx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0x14