Function at 0x52a4eb
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 0x52a52d
mov dword [esi], str.this_version_of_PCRE_is_not_compiled_with_PCRE_UTF8_support
xor eax, eax
jmp 0x52aea3
test esi, esi
jne 0x52a538
xor eax, eax
jmp 0x52aea3
xor edx, edx
mov dword [esi], edx
cmp dword [ebp + 0x14], 0
jne 0x52a54f
mov dword [esi], str.erroffset_passed_as_NULL
xor eax, eax
jmp 0x52aea3
mov edx, dword [ebp + 0x14]
xor ecx, ecx
mov dword [edx], ecx
test dword [ebp + 0xc], 0xfffff580
je 0x52a56c
mov dword [esi], str.unknown_option_bit_s__set
xor eax, eax
jmp 0x52aea3
cmp dword [ebp + 0x18], 0
jne 0x52a579
mov dword [ebp + 0x18], 0x56f974
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 0x52ad2e
cmp dword [ebp - 0x30], 0
je 0x52a5d1
xor edx, edx
mov dword [ebp - 0x30], edx
jmp 0x52a5d4
inc dword [ebp - 0x2c]
mov ecx, dword [ebp - 0x2c]
xor ebx, ebx
mov bl, byte [ecx]
test ebx, ebx
je 0x52ad3a
test byte [ebp + 0xc], 8
je 0x52a60c
mov edx, dword [ebp - 0x64]
test byte [edx + ebx], 1
jne 0x52a5a8
cmp ebx, 0x23
jne 0x52a60c
inc dword [ebp - 0x2c]
mov eax, dword [ebp - 0x2c]
xor ebx, ebx
mov bl, byte [eax]
test ebx, ebx
je 0x52a5a8
cmp ebx, 0xa
jne 0x52a5f7
jmp 0x52a5a8
mov edx, ebx
cmp edx, 0x3f
jg 0x52a658
je case.0x52a625.36
add edx, 0xffffffdc
cmp edx, 0xa
ja case.0x52a625.37
jmp dword [edx*4 + 0x52a62c]
cmp edx, 0x5e
jg 0x52a674
je case.0x52a625.36
sub edx, 0x5b
je 0x52a806
dec edx
je 0x52a689
jmp case.0x52a625.37
sub edx, 0x7b
je 0x52a769
dec edx
je 0x52a7f9
jmp case.0x52a625.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.00528b72
mov ebx, eax
cmp dword [esi], 0
jne 0x52ae25
test ebx, ebx
jl 0x52a6c4
mov eax, dword [ebp - 0x40]
mov dword [ebp - 0x2c], eax
mov ebx, 0x5c
jmp case.0x52a625.37
inc edi
cmp ebx, 0xfffffff4
jg 0x52a5a8
mov eax, ebx
neg eax
add eax, 0xfffffff4
cmp eax, dword [ebp - 0x14]
jle 0x52a6dd
mov dword [ebp - 0x14], eax
add edi, 2
mov edx, dword [ebp - 0x2c]
cmp byte [edx + 1], 0x7b
jne 0x52a5a8
lea ecx, [ebp - 0x70]
push ecx
mov eax, dword [ebp - 0x2c]
add eax, 2
push eax
call fcn.00528d09
test eax, eax
je 0x52a5a8
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.00528d8d
mov dword [ebp - 0x2c], eax
cmp dword [esi], 0
jne 0x52ae25
cmp dword [ebp - 0x34], 0
jne 0x52a73c
cmp dword [ebp - 0x38], 1
je 0x52a748
cmp dword [ebp - 0x38], 0xffffffff
je 0x52a748
cmp dword [ebp - 0x34], 1
jne 0x52a74b
cmp dword [ebp - 0x38], 0xffffffff
jne 0x52a74b
inc edi
jmp 0x52a74e
add edi, 5
mov ecx, dword [ebp - 0x2c]
cmp byte [ecx + 1], 0x3f
jne 0x52a5a8
inc dword [ebp - 0x2c]
jmp 0x52a5a8
inc edi
jmp 0x52a5a8
lea eax, [ebp - 0x70]
push eax
mov edx, dword [ebp - 0x2c]
inc edx
push edx
call fcn.00528d09
test eax, eax
je case.0x52a625.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.00528d8d
mov dword [ebp - 0x2c], eax
cmp dword [esi], 0
jne 0x52ae25
cmp dword [ebp - 0x34], 0
jne 0x52a7b4
cmp dword [ebp - 0x38], 1
je 0x52a7c0
cmp dword [ebp - 0x38], 0xffffffff
je 0x52a7c0
cmp dword [ebp - 0x34], 1
jne 0x52a7c3
cmp dword [ebp - 0x38], 0xffffffff
jne 0x52a7c3
inc edi
jmp 0x52a7e4
dec edi
cmp dword [ebp - 0x34], 1
jne 0x52a7cd
inc edi
jmp 0x52a7d6
cmp dword [ebp - 0x34], 0
jle 0x52a7d6
add edi, 4
cmp dword [ebp - 0x38], 0
jle 0x52a7e1
add edi, 4
jmp 0x52a7e4
add edi, 2
mov eax, dword [ebp - 0x2c]
cmp byte [eax + 1], 0x3f
jne 0x52a5a8
inc dword [ebp - 0x2c]
jmp 0x52a5a8
mov edx, dword [ebp - 0x18]
add edx, 3
add edi, edx
jmp 0x52a5a8
xor ebx, ebx
inc dword [ebp - 0x2c]
mov eax, dword [ebp - 0x2c]
cmp byte [eax], 0x5e
jne 0x52a816
inc dword [ebp - 0x2c]
mov edx, dword [ebp - 0x2c]
cmp byte [edx], 0x5c
jne 0x52a84e
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.00528b72
cmp dword [esi], 0
jne 0x52ae25
neg eax
cmp eax, 3
jne 0x52a847
inc ebx
jmp 0x52a84f
mov ebx, 0xa
jmp 0x52a84f
inc ebx
inc dword [ebp - 0x2c]
mov eax, dword [ebp - 0x2c]
mov al, byte [eax]
test al, al
je 0x52a85f
cmp al, 0x5d
jne 0x52a816
dec ebx
jne 0x52a86a
add edi, 3
jmp 0x52a5a8
add edi, 0x21
mov edx, dword [ebp - 0x2c]
cmp byte [edx], 0
je 0x52a5a8
mov ecx, dword [ebp - 0x2c]
cmp byte [ecx + 1], 0x7b
jne 0x52a5a8
lea eax, [ebp - 0x70]
push eax
mov edx, dword [ebp - 0x2c]
add edx, 2
push edx
call fcn.00528d09
test eax, eax
je 0x52a5a8
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.00528d8d
mov dword [ebp - 0x2c], eax
cmp dword [esi], 0
jne 0x52ae25
cmp dword [ebp - 0x34], 0
jne 0x52a8d5
cmp dword [ebp - 0x38], 1
je 0x52a8e1
cmp dword [ebp - 0x38], 0xffffffff
je 0x52a8e1
cmp dword [ebp - 0x34], 1
jne 0x52a8e4
cmp dword [ebp - 0x38], 0xffffffff
jne 0x52a8e4
inc edi
jmp 0x52a8e7
add edi, 5
mov eax, dword [ebp - 0x2c]
cmp byte [eax + 1], 0x3f
jne 0x52a5a8
inc dword [ebp - 0x2c]
jmp 0x52a5a8
xor edx, edx
mov dword [ebp - 0x1c], edx
mov dword [ebp - 0x3c], 3
mov ecx, dword [ebp - 0x2c]
cmp byte [ecx + 1], 0x3f
jne 0x52ab57
mov edx, dword [ebp - 0x2c]
xor ebx, ebx
mov bl, byte [edx + 2]
mov edx, ebx
cmp edx, 0x3a
jg 0x52a93e
je 0x52a980
sub edx, 0x21
je 0x52a980
sub edx, 2
je 0x52a953
sub edx, 5
je 0x52a9d7
jmp 0x52aa5d
sub edx, 0x3c
je 0x52a9a7
dec edx
sub edx, 2
jb 0x52a980
sub edx, 0x13
je 0x52a989
jmp 0x52aa5d
add dword [ebp - 0x2c], 3
jmp 0x52a95c
inc dword [ebp - 0x2c]
mov eax, dword [ebp - 0x2c]
mov al, byte [eax]
test al, al
je 0x52a969
cmp al, 0x29
jne 0x52a959
mov edx, dword [ebp - 0x2c]
cmp byte [edx], 0
jne 0x52a5a8
mov dword [esi], str.missing___after_comment
jmp 0x52ae25
add dword [ebp - 0x2c], 2
jmp 0x52ab67
mov ecx, dword [ebp - 0x2c]
cmp byte [ecx + 3], 0x29
je 0x52a99d
mov dword [esi], str.__p_must_be_followed_by__
jmp 0x52ae25
add dword [ebp - 0x2c], 3
inc edi
jmp 0x52ab67
mov edx, dword [ebp - 0x2c]
cmp byte [edx + 3], 0x3d
je 0x52a9b9
mov ecx, dword [ebp - 0x2c]
cmp byte [ecx + 3], 0x21
jne 0x52a9cc
add dword [ebp - 0x2c], 3
mov dword [ebp - 0x1c], 3
add edi, 3
jmp 0x52ab67
mov dword [esi], str.unrecognized_character_after____
jmp 0x52ae25
mov edx, dword [ebp - 0x2c]
xor ecx, ecx
mov cl, byte [edx + 3]
mov edx, dword [ebp - 0x64]
test byte [edx + ecx], 4
je 0x52aa1b
add dword [ebp - 0x2c], 4
add edi, 3
jmp 0x52a9f4
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 0x52a9f1
mov edx, dword [ebp - 0x2c]
cmp byte [edx], 0x29
je 0x52ab67
mov dword [esi], str.malformed_number_after____
jmp 0x52ae25
inc dword [ebp - 0x2c]
mov ecx, dword [ebp - 0x2c]
cmp byte [ecx + 2], 0x3f
jne 0x52aa4e
mov edx, dword [ebp - 0x2c]
cmp byte [edx + 3], 0x3d
je 0x52ab67
mov ecx, dword [ebp - 0x2c]
cmp byte [ecx + 3], 0x21
je 0x52ab67
mov edx, dword [ebp - 0x2c]
cmp byte [edx + 3], 0x3c
je 0x52ab67
add dword [ebp - 0x2c], 2
mov dword [esi], str.assertion_expected_after____
jmp 0x52ae25
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 0x52aa95
je 0x52aabf
sub ecx, 0x29
je 0x52aad1
sub ecx, 4
je 0x52aacc
sub ecx, 0xd
je 0x52aaef
sub ecx, 0x1b
je 0x52aac4
jmp 0x52ab18
sub ecx, 0x69
je 0x52aaab
sub ecx, 4
je 0x52aab0
sub ecx, 6
je 0x52aab5
sub ecx, 5
je 0x52aaba
jmp 0x52ab18
or dword [edx], 1
jmp 0x52ab23
or dword [edx], 2
jmp 0x52ab23
or dword [edx], 4
jmp 0x52ab23
or dword [edx], 8
jmp 0x52ab23
or dword [edx], 0x40
jmp 0x52ab23
or dword [edx], 0x200
jmp 0x52ab23
lea edx, [ebp - 0x48]
jmp 0x52ab23
cmp dword [ebp - 0x20], 0
jne 0x52aaef
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 0x52ab2b
add edi, 4
mov dword [ebp - 0x1c], 2
mov edx, dword [ebp - 0x44]
or edx, dword [ebp - 0x48]
test dl, 1
je 0x52ab2b
or dword [ebp + 0xc], 0x4000000
jmp 0x52ab2b
mov dword [esi], str.unrecognized_character_after___
jmp 0x52ae25
inc dword [ebp - 0x2c]
jmp 0x52aa6c
cmp ebx, 0x29
jne 0x52ab67
cmp dword [ebp - 0x1c], 2
jne 0x52a5a8
cmp dword [ebp - 0x18], 0
je 0x52ab4a
cmp dword [ebp - 0x18], 3
jne 0x52a5a8
mov eax, dword [ebp - 0x1c]
add dword [ebp - 0x18], eax
jmp 0x52a5a8
inc dword [ebp - 0x10]
cmp dword [ebp - 0x10], 0x96
jle 0x52ab67
add dword [ebp - 0x3c], 3
cmp dword [ebp - 0x20], 0xc8
jb 0x52ab7b
mov dword [esi], str.parentheses_nested_too_deeply
jmp 0x52ae25
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 0x52a5a8
add edi, 3
mov dword [ebp - 0x4c], 1
mov dword [ebp - 0x50], 1
cmp dword [ebp - 0x20], 0
jbe 0x52abc7
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 0x52abcc
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 0x52ac14
lea eax, [ebp - 0x70]
push eax
mov edx, dword [ebp - 0x2c]
add edx, 2
push edx
call fcn.00528d09
test eax, eax
je 0x52ac14
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.00528d8d
mov dword [ebp - 0x2c], eax
cmp dword [esi], 0
jne 0x52ae25
jmp 0x52ac48
cmp ebx, 0x2a
jne 0x52ac2a
xor eax, eax
mov dword [ebp - 0x4c], eax
mov dword [ebp - 0x50], 0xffffffff
inc dword [ebp - 0x2c]
jmp 0x52ac48
cmp ebx, 0x2b
jne 0x52ac3b
mov dword [ebp - 0x50], 0xffffffff
inc dword [ebp - 0x2c]
jmp 0x52ac48
cmp ebx, 0x3f
jne 0x52ac48
xor edx, edx
mov dword [ebp - 0x4c], edx
inc dword [ebp - 0x2c]
cmp dword [ebp - 0x4c], 0
jne 0x52ac6d
inc edi
cmp dword [ebp - 0x50], 0
jle 0x52a5a8
mov ecx, dword [ebp - 0x50]
dec ecx
mov eax, dword [ebp - 0x54]
add eax, 7
imul ecx, eax
add edi, ecx
jmp 0x52a5a8
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 0x52a5a8
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 0x52a5a8
add edi, 2
xor ecx, ecx
mov dword [ebp - 4], ecx
test byte [ebp + 0xc], 8
je 0x52accc
mov eax, dword [ebp - 0x64]
test byte [eax + ebx], 1
jne 0x52ad07
cmp ebx, 0x23
jne 0x52accc
inc dword [ebp - 0x2c]
mov edx, dword [ebp - 0x2c]
xor ebx, ebx
mov bl, byte [edx]
test ebx, ebx
je 0x52ad07
cmp ebx, 0xa
jne 0x52acb7
jmp 0x52ad07
cmp ebx, 0x5c
jne 0x52ad04
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.00528b72
mov ebx, eax
cmp dword [esi], 0
jne 0x52ae25
test ebx, ebx
jge 0x52ad04
mov eax, dword [ebp - 0x58]
mov dword [ebp - 0x2c], eax
jmp 0x52ad23
inc dword [ebp - 4]
cmp dword [ebp - 4], 0xff
jge 0x52ad23
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 0x52aca3
dec dword [ebp - 0x2c]
add edi, dword [ebp - 4]
jmp 0x52a5a8
mov edx, dword [ebp - 0x2c]
cmp byte [edx], 0
jne 0x52a5c4
add edi, 4
cmp edi, 0x10003
jle 0x52ad52
mov dword [esi], str.regular_expression_too_large
xor eax, eax
jmp 0x52aea3
mov edx, edi
add edx, 0x16
mov dword [ebp - 0x24], edx
push dword [ebp - 0x24]
call fcn.00559d70
pop ecx
mov ebx, eax
test ebx, ebx
jne 0x52ad76
mov dword [esi], str.failed_to_get_memory
xor eax, eax
jmp 0x52aea3
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.0052a0dd
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 0x52adef
mov edx, dword [ebp - 0x2c]
cmp byte [edx], 0
je 0x52adef
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 0x52ae0a
mov dword [esi], str.internal_error:_code_overflow
movzx ecx, word [ebx + 0x10]
cmp ecx, dword [ebp - 0x14]
jge 0x52ae19
mov dword [esi], str.back_reference_to_non_existent_subpattern
cmp dword [esi], 0
je 0x52ae34
push ebx
call fcn.00559c5c
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 0x52aea3
test byte [ebp + 0xc], 0x10
jne 0x52ae82
mov edx, dword [ebp + 0xc]
mov dword [ebp - 0x5c], edx
lea ecx, [ebp - 0x5c]
push ecx
lea esi, [ebx + 0x16]
push esi
call fcn.0052a321
test eax, eax
je 0x52ae57
or dword [ebx + 0xc], 0x10
jmp 0x52ae82
lea eax, [ebp - 0x5c]
push eax
push esi
call fcn.0052a42b
test eax, eax
jl 0x52ae71
mov byte [ebx + 0x14], al
or dword [ebx + 0xc], 0x40000000
jmp 0x52ae82
push esi
call fcn.0052a3b0
test eax, eax
je 0x52ae82
or dword [ebx + 0xc], 0x10000000
cmp dword [ebp - 8], 0
jl 0x52aea1
cmp dword [ebp - 0xc], 1
jg 0x52ae94
test byte [ebx + 0xf], 0x40
jne 0x52aea1
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