Function at 0x410520
Capabilities:
Parse credit card information

Disassembly:
push 0xffffffffffffffff
push 0x4c93e8
mov eax, dword fs:[0]
push eax
sub esp, 0x18
push ebx
push ebp
push esi
push edi
mov eax, dword [0x4f59b8]
xor eax, esp
push eax
lea eax, [esp + 0x2c]
mov dword fs:[0], eax
mov edi, ecx
xor ebx, ebx
xor ebp, ebp
mov dword [esp + 0x1c], ebx
mov dword [esp + 0x20], ebx
mov dword [esp + 0x18], vtable.CBufferT_unsigned_short_int_.0
mov dword [esp + 0x28], ebp
mov dword [esp + 0x24], ebx
mov dword [esp + 0x34], ebx
lea esp, [esp]
cmp word [edi + 0xa8], 0
mov ecx, 1
jne 0x41058b
cmp dword [edi + 0xac], ecx
je 0x4107bb
mov eax, dword [edi + 0xac]
test eax, eax
jne 0x41066e
cmp word [edi + 0xb8], 0x7b
jne 0x4105af
cmp dword [edi + 0xbc], ecx
je 0x410791
cmp word [edi + 0xb8], 0x3f
jne 0x4105c5
cmp dword [edi + 0xbc], ecx
je 0x410791
cmp word [edi + 0xb8], 0x2a
jne 0x4105db
cmp dword [edi + 0xbc], ecx
je 0x410791
cmp word [edi + 0xb8], 0x2b
jne 0x4105f1
cmp dword [edi + 0xbc], ecx
je 0x410791
cmp ebp, 8
movzx eax, word [edi + 0xa8]
mov dword [esp + 0x14], eax
mov esi, ebp
jge 0x410608
mov esi, 8
lea eax, [ebx + 2]
cmp eax, esi
jle 0x410629
add esi, esi
cmp eax, esi
jle 0x410629
lea esi, [ebx + 0xd]
mov ecx, esi
and ecx, 0x80000007
jns 0x410627
dec ecx
or ecx, 0xfffffff8
inc ecx
sub esi, ecx
cmp esi, ebp
mov eax, dword [esp + 0x24]
jle 0x41064c
lea edx, [esi + esi]
push edx
push eax
call fcn.004a07d9
mov ebp, esi
add esp, 8
mov dword [esp + 0x24], eax
mov dword [esp + 0x1c], eax
mov dword [esp + 0x28], ebp
mov cx, word [esp + 0x14]
mov word [eax + ebx*2], cx
add ebx, 1
mov ecx, edi
mov dword [esp + 0x20], ebx
mov word [eax + ebx*2], 0
call fcn.0040ed70
jmp 0x410570
cmp eax, ecx
jne 0x410570
movzx ecx, word [edi + 0xa8]
movzx eax, cx
cmp ax, 0x29
je 0x4107bb
cmp ax, 0x7c
je 0x4107bb
test ebx, ebx
jg 0x4107c3
cmp ax, 0x28
je 0x410801
cmp ax, 0x5b
je 0x410836
cmp ax, 0x2e
je 0x410836
cmp ax, 0x77
je 0x410836
cmp ax, 0x57
je 0x410836
cmp ax, 0x73
je 0x410836
cmp ax, 0x53
je 0x410836
cmp ax, 0x64
je 0x410836
cmp ax, 0x44
je 0x410836
cmp ax, 0x5e
je 0x410828
cmp ax, 0x24
je 0x410828
cmp ax, 0x41
je 0x410828
cmp ax, 0x5a
je 0x410828
cmp ax, 0x7a
je 0x410828
cmp ax, 0x62
je 0x410828
cmp ax, 0x42
je 0x410828
cmp ax, 0x47
je 0x410828
cmp ax, 0x5c
je 0x41081a
cmp ax, 0x6b
je 0x41081a
cmp ax, 0x67
je 0x41081a
push 1
movzx edx, cx
push 1
lea eax, [esp + 0x1c]
push eax
lea ecx, [esp + 0x24]
mov dword [esp + 0x20], edx
call fcn.0040aa30
mov ecx, edi
call fcn.0040ed70
mov ebp, dword [esp + 0x28]
mov ebx, dword [esp + 0x20]
jmp 0x410570
test ebx, ebx
jne 0x4107bd
movzx edx, word [edi + 0xa8]
push ecx
push ecx
lea eax, [esp + 0x1c]
push eax
lea ecx, [esp + 0x24]
mov dword [esp + 0x20], edx
call fcn.0040aa30
mov ecx, edi
call fcn.0040ed70
mov ebx, dword [esp + 0x20]
test ebx, ebx
jle 0x410850
push 0x20
call fcn.0049f7e2
add esp, 4
test eax, eax
je 0x410844
mov esi, dword [esp + 0x24]
test esi, esi
jne 0x4107de
mov esi, 0x4d6aac
mov edx, dword [esp + 0x3c]
mov edx, dword [edx]
mov ecx, edx
and ecx, 8
push ecx
and edx, 0x10
push edx
push ebx
push esi
mov ecx, eax
call fcn.0040d970
push eax
mov ecx, edi
call fcn.0040a120
jmp 0x410859
mov ecx, dword [esp + 0x3c]
push ecx
mov ecx, edi
call fcn.00411820
lea ecx, [esp + 0x18]
mov esi, eax
call fcn.00409c20
jmp 0x41086c
mov edx, dword [esp + 0x3c]
push edx
mov ecx, edi
call fcn.0040fac0
jmp 0x410859
mov eax, dword [esp + 0x3c]
push eax
mov ecx, edi
call fcn.0040f850
jmp 0x410859
mov ecx, dword [esp + 0x3c]
push ecx
mov ecx, edi
call fcn.0040f250
jmp 0x410859
xor eax, eax
push eax
mov ecx, edi
call fcn.0040a120
jmp 0x410859
push 0
mov ecx, edi
call fcn.0040ee10
mov esi, eax
mov eax, dword [esp + 0x24]
test eax, eax
je 0x41086c
push eax
call fcn.004a074b
add esp, 4
mov eax, esi
mov ecx, dword [esp + 0x2c]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x24
ret 4