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

Disassembly:
push ebp
mov ebp, esp
add esp, 0xfffffbac
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 0x51dc93
mov dword [esi], str.this_version_of_PCRE_is_not_compiled_with_PCRE_UTF8_support
xor eax, eax
jmp 0x51e5ea
test esi, esi
jne 0x51dc9e
xor eax, eax
jmp 0x51e5ea
xor edx, edx
mov dword [esi], edx
cmp dword [ebp + 0x14], 0
jne 0x51dcb5
mov dword [esi], str.erroffset_passed_as_NULL
xor eax, eax
jmp 0x51e5ea
mov edx, dword [ebp + 0x14]
xor ecx, ecx
mov dword [edx], ecx
test dword [ebp + 0xc], 0xfffff580
je 0x51dcd2
mov dword [esi], str.unknown_option_bit_s__set
xor eax, eax
jmp 0x51e5ea
cmp dword [ebp + 0x18], 0
jne 0x51dcdf
mov dword [ebp + 0x18], 0x55bda0
mov edx, dword [ebp + 0x18]
mov dword [ebp - 0x6c], edx
mov ecx, dword [ebp + 0x18]
add ecx, 0x100
mov dword [ebp - 0x68], ecx
mov eax, dword [ebp + 0x18]
add eax, 0x200
mov dword [ebp - 0x64], eax
mov edx, dword [ebp + 0x18]
add edx, 0x340
mov dword [ebp - 0x60], edx
mov ecx, dword [ebp + 8]
mov dword [ebp - 0x2c], ecx
mov eax, dword [ebp - 0x20]
lea edx, [ebp + eax*4 - 0x38c]
mov dword [ebp - 0x5c], edx
mov ecx, dword [ebp - 0x20]
lea eax, [ebp + ecx - 0x454]
jmp 0x51e478
cmp dword [ebp - 0x30], 0
je 0x51dd37
xor edx, edx
mov dword [ebp - 0x30], edx
jmp 0x51dd3a
inc dword [ebp - 0x2c]
mov ecx, dword [ebp - 0x2c]
xor ebx, ebx
mov bl, byte [ecx]
test ebx, ebx
je 0x51e484
test byte [ebp + 0xc], 8
je 0x51dd72
mov edx, dword [ebp - 0x60]
test byte [edx + ebx], 1
jne 0x51dd0e
cmp ebx, 0x23
jne 0x51dd72
inc dword [ebp - 0x2c]
mov eax, dword [ebp - 0x2c]
xor ebx, ebx
mov bl, byte [eax]
test ebx, ebx
je 0x51dd0e
cmp ebx, 0xa
jne 0x51dd5d
jmp 0x51dd0e
mov edx, ebx
cmp edx, 0x3f
jg 0x51ddbe
je case.0x51dd8b.36
add edx, 0xffffffdc
cmp edx, 0xa
ja case.0x51dd8b.37
jmp dword [edx*4 + 0x51dd92]
cmp edx, 0x5e
jg 0x51ddda
je case.0x51dd8b.36
sub edx, 0x5b
je 0x51df6a
dec edx
je 0x51ddef
jmp case.0x51dd8b.37
sub edx, 0x7b
je 0x51decd
dec edx
je 0x51df5d
jmp case.0x51dd8b.37
mov eax, dword [ebp - 0x2c]
mov dword [ebp - 0x3c], eax
lea ecx, [ebp - 0x6c]
push ecx
push 0
push dword [ebp + 0xc]
push dword [ebp - 0x10]
push esi
lea eax, [ebp - 0x2c]
push eax
call fcn.0051c32a
mov ebx, eax
cmp dword [esi], 0
jne 0x51e56c
test ebx, ebx
jl 0x51de2a
mov eax, dword [ebp - 0x3c]
mov dword [ebp - 0x2c], eax
mov ebx, 0x5c
jmp case.0x51dd8b.37
inc edi
cmp ebx, 0xfffffff4
jg 0x51dd0e
mov eax, ebx
neg eax
add eax, 0xfffffff4
cmp eax, dword [ebp - 0x14]
jle 0x51de43
mov dword [ebp - 0x14], eax
inc edi
mov edx, dword [ebp - 0x2c]
cmp byte [edx + 1], 0x7b
jne 0x51dd0e
lea ecx, [ebp - 0x6c]
push ecx
mov eax, dword [ebp - 0x2c]
add eax, 2
push eax
call fcn.0051c4c1
test eax, eax
je 0x51dd0e
lea edx, [ebp - 0x6c]
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.0051c545
mov dword [ebp - 0x2c], eax
cmp dword [esi], 0
jne 0x51e56c
cmp dword [ebp - 0x34], 0
jne 0x51dea0
cmp dword [ebp - 0x38], 1
je 0x51deac
cmp dword [ebp - 0x38], 0xffffffff
je 0x51deac
cmp dword [ebp - 0x34], 1
jne 0x51deaf
cmp dword [ebp - 0x38], 0xffffffff
jne 0x51deaf
inc edi
jmp 0x51deb2
add edi, 5
mov ecx, dword [ebp - 0x2c]
cmp byte [ecx + 1], 0x3f
jne 0x51dd0e
inc dword [ebp - 0x2c]
jmp 0x51dd0e
inc edi
jmp 0x51dd0e
lea eax, [ebp - 0x6c]
push eax
mov edx, dword [ebp - 0x2c]
inc edx
push edx
call fcn.0051c4c1
test eax, eax
je case.0x51dd8b.37
lea ecx, [ebp - 0x6c]
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.0051c545
mov dword [ebp - 0x2c], eax
cmp dword [esi], 0
jne 0x51e56c
cmp dword [ebp - 0x34], 0
jne 0x51df18
cmp dword [ebp - 0x38], 1
je 0x51df24
cmp dword [ebp - 0x38], 0xffffffff
je 0x51df24
cmp dword [ebp - 0x34], 1
jne 0x51df27
cmp dword [ebp - 0x38], 0xffffffff
jne 0x51df27
inc edi
jmp 0x51df48
dec edi
cmp dword [ebp - 0x34], 1
jne 0x51df31
inc edi
jmp 0x51df3a
cmp dword [ebp - 0x34], 0
jle 0x51df3a
add edi, 4
cmp dword [ebp - 0x38], 0
jle 0x51df45
add edi, 4
jmp 0x51df48
add edi, 2
mov eax, dword [ebp - 0x2c]
cmp byte [eax + 1], 0x3f
jne 0x51dd0e
inc dword [ebp - 0x2c]
jmp 0x51dd0e
mov edx, dword [ebp - 0x18]
add edx, 3
add edi, edx
jmp 0x51dd0e
xor ebx, ebx
inc dword [ebp - 0x2c]
mov eax, dword [ebp - 0x2c]
cmp byte [eax], 0x5e
jne 0x51df7a
inc dword [ebp - 0x2c]
mov edx, dword [ebp - 0x2c]
cmp byte [edx], 0x5c
jne 0x51dfb2
lea ecx, [ebp - 0x6c]
push ecx
push 1
push dword [ebp + 0xc]
push dword [ebp - 0x10]
push esi
lea eax, [ebp - 0x2c]
push eax
call fcn.0051c32a
cmp dword [esi], 0
jne 0x51e56c
neg eax
cmp eax, 3
jne 0x51dfab
inc ebx
jmp 0x51dfb3
mov ebx, 0xa
jmp 0x51dfb3
inc ebx
inc dword [ebp - 0x2c]
mov eax, dword [ebp - 0x2c]
mov al, byte [eax]
test al, al
je 0x51dfc3
cmp al, 0x5d
jne 0x51df7a
dec ebx
jne 0x51dfce
add edi, 3
jmp 0x51dd0e
add edi, 0x21
mov edx, dword [ebp - 0x2c]
cmp byte [edx], 0
je 0x51dd0e
mov ecx, dword [ebp - 0x2c]
cmp byte [ecx + 1], 0x7b
jne 0x51dd0e
lea eax, [ebp - 0x6c]
push eax
mov edx, dword [ebp - 0x2c]
add edx, 2
push edx
call fcn.0051c4c1
test eax, eax
je 0x51dd0e
lea ecx, [ebp - 0x6c]
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.0051c545
mov dword [ebp - 0x2c], eax
cmp dword [esi], 0
jne 0x51e56c
cmp dword [ebp - 0x34], 0
jne 0x51e039
cmp dword [ebp - 0x38], 1
je 0x51e045
cmp dword [ebp - 0x38], 0xffffffff
je 0x51e045
cmp dword [ebp - 0x34], 1
jne 0x51e048
cmp dword [ebp - 0x38], 0xffffffff
jne 0x51e048
inc edi
jmp 0x51e04b
add edi, 5
mov eax, dword [ebp - 0x2c]
cmp byte [eax + 1], 0x3f
jne 0x51dd0e
inc dword [ebp - 0x2c]
jmp 0x51dd0e
xor edx, edx
mov dword [ebp - 0x1c], edx
mov ecx, dword [ebp - 0x2c]
cmp byte [ecx + 1], 0x3f
jne 0x51e2ae
mov edx, dword [ebp - 0x2c]
xor ebx, ebx
mov bl, byte [edx + 2]
mov edx, ebx
cmp edx, 0x3a
jg 0x51e09b
je 0x51e0dd
sub edx, 0x21
je 0x51e0dd
sub edx, 2
je 0x51e0b0
sub edx, 5
je 0x51e134
jmp 0x51e1b4
sub edx, 0x3c
je 0x51e104
dec edx
sub edx, 2
jb 0x51e0dd
sub edx, 0x13
je 0x51e0e6
jmp 0x51e1b4
add dword [ebp - 0x2c], 3
jmp 0x51e0b9
inc dword [ebp - 0x2c]
mov eax, dword [ebp - 0x2c]
mov al, byte [eax]
test al, al
je 0x51e0c6
cmp al, 0x29
jne 0x51e0b6
mov edx, dword [ebp - 0x2c]
cmp byte [edx], 0
jne 0x51dd0e
mov dword [esi], str.missing___after_comment
jmp 0x51e56c
add dword [ebp - 0x2c], 2
jmp 0x51e2b1
mov ecx, dword [ebp - 0x2c]
cmp byte [ecx + 3], 0x29
je 0x51e0fa
mov dword [esi], str.__p_must_be_followed_by__
jmp 0x51e56c
add dword [ebp - 0x2c], 3
inc edi
jmp 0x51e2b1
mov edx, dword [ebp - 0x2c]
cmp byte [edx + 3], 0x3d
je 0x51e116
mov ecx, dword [ebp - 0x2c]
cmp byte [ecx + 3], 0x21
jne 0x51e129
add dword [ebp - 0x2c], 3
mov dword [ebp - 0x1c], 3
add edi, 3
jmp 0x51e2b1
mov dword [esi], str.unrecognized_character_after____
jmp 0x51e56c
mov edx, dword [ebp - 0x2c]
xor ecx, ecx
mov cl, byte [edx + 3]
mov edx, dword [ebp - 0x60]
test byte [edx + ecx], 4
je 0x51e178
add dword [ebp - 0x2c], 4
add edi, 2
jmp 0x51e151
inc dword [ebp - 0x2c]
mov ecx, dword [ebp - 0x2c]
xor edx, edx
mov dl, byte [ecx]
mov ecx, dword [ebp - 0x60]
test byte [ecx + edx], 4
jne 0x51e14e
mov edx, dword [ebp - 0x2c]
cmp byte [edx], 0x29
je 0x51e2b1
mov dword [esi], str.malformed_number_after____
jmp 0x51e56c
inc dword [ebp - 0x2c]
mov ecx, dword [ebp - 0x2c]
cmp byte [ecx + 2], 0x3f
jne 0x51e1a5
mov edx, dword [ebp - 0x2c]
mov dl, byte [edx + 3]
cmp dl, 0x3d
je 0x51e2b1
cmp dl, 0x21
je 0x51e2b1
cmp dl, 0x3c
je 0x51e2b1
add dword [ebp - 0x2c], 2
mov dword [esi], str.assertion_expected_after____
jmp 0x51e56c
xor ecx, ecx
mov dword [ebp - 0x44], ecx
mov dword [ebp - 0x40], ecx
lea edx, [ebp - 0x40]
add dword [ebp - 0x2c], 2
mov ecx, dword [ebp - 0x2c]
xor ebx, ebx
mov bl, byte [ecx]
mov ecx, ebx
cmp ecx, 0x58
jg 0x51e1ec
je 0x51e216
sub ecx, 0x29
je 0x51e228
sub ecx, 4
je 0x51e223
sub ecx, 0xd
je 0x51e246
sub ecx, 0x1b
je 0x51e21b
jmp 0x51e26f
sub ecx, 0x69
je 0x51e202
sub ecx, 4
je 0x51e207
sub ecx, 6
je 0x51e20c
sub ecx, 5
je 0x51e211
jmp 0x51e26f
or dword [edx], 1
jmp 0x51e27a
or dword [edx], 2
jmp 0x51e27a
or dword [edx], 4
jmp 0x51e27a
or dword [edx], 8
jmp 0x51e27a
or dword [edx], 0x40
jmp 0x51e27a
or dword [edx], 0x200
jmp 0x51e27a
lea edx, [ebp - 0x44]
jmp 0x51e27a
cmp dword [ebp - 0x20], 0
jne 0x51e246
mov edx, dword [ebp + 0xc]
or edx, dword [ebp - 0x40]
mov ecx, dword [ebp - 0x44]
not ecx
and edx, ecx
mov dword [ebp + 0xc], edx
xor edx, edx
mov dword [ebp - 0x44], edx
mov dword [ebp - 0x40], edx
mov ecx, dword [ebp - 0x40]
or ecx, dword [ebp - 0x44]
test cl, 7
je 0x51e282
add edi, 4
mov dword [ebp - 0x1c], 2
mov edx, dword [ebp - 0x40]
or edx, dword [ebp - 0x44]
test dl, 1
je 0x51e282
or dword [ebp + 0xc], 0x4000000
jmp 0x51e282
mov dword [esi], str.unrecognized_character_after___
jmp 0x51e56c
inc dword [ebp - 0x2c]
jmp 0x51e1c3
cmp ebx, 0x29
jne 0x51e2b1
cmp dword [ebp - 0x1c], 2
jne 0x51dd0e
cmp dword [ebp - 0x18], 0
je 0x51e2a1
cmp dword [ebp - 0x18], 3
jne 0x51dd0e
mov eax, dword [ebp - 0x1c]
add dword [ebp - 0x18], eax
jmp 0x51dd0e
inc dword [ebp - 0x10]
cmp dword [ebp - 0x20], 0xc8
jb 0x51e2c5
mov dword [esi], str.too_many_sets_of_parentheses
jmp 0x51e56c
mov cl, byte [ebp - 0x18]
mov byte [eax], cl
mov eax, dword [ebp - 0x1c]
mov dword [ebp - 0x18], eax
mov edx, dword [ebp - 0x5c]
mov dword [edx], edi
inc dword [ebp - 0x20]
add edi, 3
jmp 0x51dd0e
add edi, 3
mov dword [ebp - 0x48], 1
mov dword [ebp - 0x4c], 1
cmp dword [ebp - 0x20], 0
jbe 0x51e311
dec dword [ebp - 0x20]
add dword [ebp - 0x5c], 0xfffffffc
dec eax
mov ecx, dword [ebp - 0x5c]
mov edx, edi
sub edx, dword [ecx]
mov dword [ebp - 0x50], edx
movzx eax, byte [eax]
mov dword [ebp - 0x18], eax
jmp 0x51e316
xor ecx, ecx
mov dword [ebp - 0x50], ecx
mov eax, dword [ebp - 0x2c]
xor ebx, ebx
mov bl, byte [eax + 1]
cmp ebx, 0x7b
jne 0x51e35e
lea eax, [ebp - 0x6c]
push eax
mov edx, dword [ebp - 0x2c]
add edx, 2
push edx
call fcn.0051c4c1
test eax, eax
je 0x51e35e
lea ecx, [ebp - 0x6c]
push ecx
push esi
lea eax, [ebp - 0x4c]
push eax
lea edx, [ebp - 0x48]
push edx
mov ecx, dword [ebp - 0x2c]
add ecx, 2
push ecx
call fcn.0051c545
mov dword [ebp - 0x2c], eax
cmp dword [esi], 0
jne 0x51e56c
jmp 0x51e392
cmp ebx, 0x2a
jne 0x51e374
xor eax, eax
mov dword [ebp - 0x48], eax
mov dword [ebp - 0x4c], 0xffffffff
inc dword [ebp - 0x2c]
jmp 0x51e392
cmp ebx, 0x2b
jne 0x51e385
mov dword [ebp - 0x4c], 0xffffffff
inc dword [ebp - 0x2c]
jmp 0x51e392
cmp ebx, 0x3f
jne 0x51e392
xor edx, edx
mov dword [ebp - 0x48], edx
inc dword [ebp - 0x2c]
cmp dword [ebp - 0x48], 0
jne 0x51e3b7
inc edi
cmp dword [ebp - 0x4c], 0
jle 0x51dd0e
mov ecx, dword [ebp - 0x4c]
dec ecx
mov eax, dword [ebp - 0x50]
add eax, 7
imul ecx, eax
add edi, ecx
jmp 0x51dd0e
mov edx, dword [ebp - 0x48]
dec edx
imul edx, dword [ebp - 0x50]
add edi, edx
mov ecx, dword [ebp - 0x4c]
cmp ecx, dword [ebp - 0x48]
jle 0x51dd0e
mov eax, dword [ebp - 0x4c]
sub eax, dword [ebp - 0x48]
mov edx, dword [ebp - 0x50]
add edx, 7
imul edx
add eax, 0xfffffffa
add edi, eax
jmp 0x51dd0e
add edi, 2
xor ecx, ecx
mov dword [ebp - 4], ecx
test byte [ebp + 0xc], 8
je 0x51e416
mov eax, dword [ebp - 0x60]
test byte [eax + ebx], 1
jne 0x51e451
cmp ebx, 0x23
jne 0x51e416
inc dword [ebp - 0x2c]
mov edx, dword [ebp - 0x2c]
xor ebx, ebx
mov bl, byte [edx]
test ebx, ebx
je 0x51e451
cmp ebx, 0xa
jne 0x51e401
jmp 0x51e451
cmp ebx, 0x5c
jne 0x51e44e
mov eax, dword [ebp - 0x2c]
mov dword [ebp - 0x54], eax
lea edx, [ebp - 0x6c]
push edx
push 0
push dword [ebp + 0xc]
push dword [ebp - 0x10]
push esi
lea ecx, [ebp - 0x2c]
push ecx
call fcn.0051c32a
mov ebx, eax
cmp dword [esi], 0
jne 0x51e56c
test ebx, ebx
jge 0x51e44e
mov eax, dword [ebp - 0x54]
mov dword [ebp - 0x2c], eax
jmp 0x51e46d
inc dword [ebp - 4]
cmp dword [ebp - 4], 0xff
jge 0x51e46d
inc dword [ebp - 0x2c]
mov edx, dword [ebp - 0x2c]
xor ebx, ebx
mov bl, byte [edx]
mov eax, dword [ebp - 0x60]
test byte [eax + ebx], 0x80
je 0x51e3ed
dec dword [ebp - 0x2c]
add edi, dword [ebp - 4]
jmp 0x51dd0e
mov edx, dword [ebp - 0x2c]
cmp byte [edx], 0
jne 0x51dd2a
add edi, 4
cmp edi, 0x10003
jle 0x51e49c
mov dword [esi], str.regular_expression_too_large
xor eax, eax
jmp 0x51e5ea
mov edx, edi
add edx, 0x14
mov dword [ebp - 0x24], edx
push dword [ebp - 0x24]
call fcn.00545a4c
pop ecx
mov ebx, eax
test ebx, ebx
jne 0x51e4c0
mov dword [esi], str.failed_to_get_memory
xor eax, eax
jmp 0x51e5ea
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 + 0x14]
mov dword [ebp - 0x28], ecx
mov eax, dword [ebp - 0x28]
mov byte [eax], 0x46
xor edx, edx
mov dword [ebp - 0x10], edx
lea ecx, [ebp - 0x6c]
push ecx
lea eax, [ebp - 0xc]
push eax
lea edx, [ebp - 8]
push edx
push 0xffffffffffffffff
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.0051d842
mov cl, byte [ebp - 0x10]
mov byte [ebx + 0x10], cl
mov al, byte [ebp - 0x14]
mov byte [ebx + 0x11], al
cmp dword [esi], 0
jne 0x51e535
mov edx, dword [ebp - 0x2c]
cmp byte [edx], 0
je 0x51e535
mov dword [esi], str.unmatched_parentheses
mov ecx, dword [ebp - 0x28]
mov byte [ecx], 0
inc dword [ebp - 0x28]
lea eax, [ebx + 0x14]
mov edx, dword [ebp - 0x28]
sub edx, eax
cmp edi, edx
jge 0x51e550
mov dword [esi], str.internal_error:_code_overflow
xor ecx, ecx
mov cl, byte [ebx + 0x10]
cmp ecx, dword [ebp - 0x14]
jge 0x51e560
mov dword [esi], str.back_reference_to_non_existent_subpattern
cmp dword [esi], 0
je 0x51e57b
push ebx
call fcn.00545938
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 0x51e5ea
test byte [ebp + 0xc], 0x10
jne 0x51e5c9
mov edx, dword [ebp + 0xc]
mov dword [ebp - 0x58], edx
lea ecx, [ebp - 0x58]
push ecx
lea esi, [ebx + 0x14]
push esi
call fcn.0051da87
test eax, eax
je 0x51e59e
or dword [ebx + 0xc], 0x10
jmp 0x51e5c9
lea eax, [ebp - 0x58]
push eax
push esi
call fcn.0051db91
test eax, eax
jl 0x51e5b8
mov byte [ebx + 0x12], al
or dword [ebx + 0xc], 0x40000000
jmp 0x51e5c9
push esi
call fcn.0051db16
test eax, eax
je 0x51e5c9
or dword [ebx + 0xc], 0x10000000
cmp dword [ebp - 8], 0
jl 0x51e5e8
cmp dword [ebp - 0xc], 1
jg 0x51e5db
test byte [ebx + 0xf], 0x40
jne 0x51e5e8
mov dl, byte [ebp - 8]
mov byte [ebx + 0x13], dl
or dword [ebx + 0xc], 0x20000000
mov eax, ebx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0x14