Function at 0x4effe0
Capabilities:
Parse credit card information

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x5a6655
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
sub esp, 0x3c
push ebx
mov ebx, dword [ebp + 8]
push esi
mov esi, ecx
push str.input_field_name
push ebx
mov dword [ebp - 0x10], esi
call dword [0x5b466c]
add esp, 8
test eax, eax
jne 0x4f01c6
xor edx, edx
nop
mov al, byte [edx + ebx]
test al, al
je 0x4f0137
lea ecx, [eax - 0x20]
cmp cl, 0x5e
ja 0x4f013f
cmp al, 0x3d
je 0x4f013f
cmp al, 0x25
je 0x4f013f
cmp al, 0x3c
je 0x4f013f
cmp al, 0x3e
je 0x4f013f
inc edx
cmp edx, 0xffffffff
jb 0x4f0020
mov ecx, dword [esi + 0x2b4]
mov eax, dword [ecx + 0x38]
mov dword [ebp - 0x14], eax
test eax, eax
je 0x4f0077
lock inc dword [eax + 4]
mov eax, dword [ecx + 0x38]
mov dword [ebp - 0x14], eax
mov ecx, dword [ecx + 0x34]
push edi
mov dword [ebp - 0x1c], ecx
mov dword [ebp - 0x30], ecx
mov dword [ebp - 0x2c], eax
xor edi, edi
mov dword [ebp - 4], 1
cmp dword [ecx + 4], edi
jbe 0x4f00f5
mov eax, dword [ecx]
mov esi, dword [eax + edi*8]
mov eax, dword [eax + edi*8 + 4]
mov dword [ebp - 0x28], esi
mov dword [ebp - 0x24], eax
lea ebx, [esi + 4]
test esi, esi
je 0x4f00ab
lock inc dword [ebx]
mov eax, dword [eax + 8]
lea edx, [ebp + 8]
lea ecx, [ebp - 0x18]
mov dword [ebp - 0x18], eax
call fcn.004f3b50
test eax, eax
je 0x4f01da
mov byte [ebp - 4], 1
mov dword [ebp - 0x24], 0
mov dword [ebp - 0x28], 0
test esi, esi
je 0x4f00ec
or eax, 0xffffffff
lock xadd dword [ebx], eax
dec eax
jne 0x4f00ec
mov eax, dword [esi]
mov ecx, esi
push 1
call dword [eax]
mov ecx, dword [ebp - 0x1c]
inc edi
cmp edi, dword [ecx + 4]
jb 0x4f0092
mov byte [ebp + 0xb], 1
mov ebx, dword [ebp - 0x14]
pop edi
test ebx, ebx
je 0x4f0122
or esi, 0xffffffff
mov eax, esi
lock xadd dword [ebx + 4], eax
jne 0x4f0122
mov eax, dword [ebx]
mov ecx, ebx
call dword [eax]
lock xadd dword [ebx + 8], esi
dec esi
jne 0x4f0122
mov edx, dword [ebx]
mov ecx, ebx
call dword [edx + 4]
mov al, byte [ebp + 0xb]
pop esi
pop ebx
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
mov esp, ebp
pop ebp
ret 4
test edx, edx
jne 0x4f005d
mov esi, dword [esi + 0x2b4]
mov dword [ebp - 0x48], 0x5b57a8
mov dword [ebp - 0x44], 0x5b57c4
mov dword [ebp - 0x40], 0
mov dword [ebp - 0x3c], 0
mov dword [ebp - 0x38], 0
mov byte [ebp - 0x34], 0
push 1
push 0x5bc28c
lea ecx, [ebp - 0x48]
mov dword [ebp - 4], 0
call fcn.0058c4a0
mov ecx, ebx
lea edx, [ecx + 1]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x4f0187
mov eax, dword [ebp - 0x48]
sub ecx, edx
push ecx
push ebx
lea ecx, [ebp - 0x48]
call dword [eax]
mov eax, dword [ebp - 0x48]
lea ecx, [ebp - 0x48]
push 0x1c
push str.__is_not_a_valid_field_name.
call dword [eax]
mov eax, dword [ebp - 0x48]
lea ecx, [ebp - 0x48]
call dword [eax + 4]
push eax
mov ecx, esi
call fcn.004eb420
push dword [ebp - 0x3c]
call dword [0x5b46d4]
add esp, 4
mov ecx, dword [ebp - 0xc]
xor al, al
pop esi
pop ebx
mov dword fs:[0], ecx
mov esp, ebp
pop ebp
ret 4
mov eax, dword [ebp - 0x10]
mov dword [ebp - 0x48], 0x5b57a8
mov dword [ebp - 0x44], 0x5b57c4
mov dword [ebp - 0x40], 0
mov eax, dword [eax + 0x2b4]
mov dword [ebp - 0x18], eax
mov dword [ebp - 0x3c], 0
mov dword [ebp - 0x38], 0
mov byte [ebp - 0x34], 0
push 7
push str.Field__
lea ecx, [ebp - 0x48]
mov byte [ebp - 4], 3
call fcn.0058c4a0
mov eax, dword [ebp - 0x48]
mov edx, dword [ebp + 8]
mov ecx, edx
mov eax, dword [eax]
mov dword [ebp - 0x1c], eax
lea eax, [ecx + 1]
mov dword [ebp + 8], eax
mov al, byte [ecx]
inc ecx
test al, al
jne 0x4f0233
sub ecx, dword [ebp + 8]
push ecx
push edx
lea ecx, [ebp - 0x48]
call dword [ebp - 0x1c]
mov eax, dword [ebp - 0x48]
lea ecx, [ebp - 0x48]
push 0x11
push str.__already_exists.
call dword [eax]
mov eax, dword [ebp - 0x48]
lea ecx, [ebp - 0x48]
call dword [eax + 4]
mov ecx, dword [ebp - 0x18]
push eax
call fcn.004eb420
mov byte [ebp - 4], 2
push dword [ebp - 0x3c]
call dword [0x5b46d4]
mov ecx, dword [ebp - 0x10]
add esp, 4
mov eax, dword [ecx]
push edi
call dword [eax + 0x100]
mov ecx, dword [ebp - 0x10]
lea edx, [ebp - 0x20]
push edx
lea edx, [ebp + 8]
mov dword [ebp - 0x20], 0x5bfbbc
push edx
mov eax, dword [ecx]
mov dword [ebp - 0x1c], edi
mov dword [ebp + 8], 0x5bcc5c
call dword [eax + 0x118]
test esi, esi
je 0x4f02bc
or eax, 0xffffffff
lock xadd dword [ebx], eax
dec eax
jne 0x4f02bc
mov eax, dword [esi]
mov ecx, esi
push 1
call dword [eax]
mov byte [ebp + 0xb], 0
jmp 0x4f00f9