Function at 0x48b780
Capabilities:
Parse credit card information

Disassembly:
push ebp
push ebx
push edi
push esi
sub esp, 0x3c
mov eax, dword [0x567b10]
xor eax, esp
mov dword [esp + 0x38], eax
mov eax, dword [ecx + 0x134]
test eax, eax
je 0x48b816
mov esi, ecx
mov edi, dword [eax + 0xa4]
mov eax, dword [ecx]
mov ecx, dword [ecx + 4]
lea ecx, [ecx + ecx*8]
movzx eax, word [eax + ecx*4 - 0x24]
mov word [edi + 0x4c], ax
mov ebp, edi
nop word [eax + eax]
mov ebp, dword [ebp + 0xa4]
test ebp, ebp
je 0x48b7d1
cmp word [ebp + 0xc], 4
je 0x48b7c0
mov eax, dword [esi + 0x12c]
mov bh, byte [eax + 0x11f]
mov bl, bh
and bl, 0xfb
xor edx, edx
test ebp, ebp
je 0x48b81f
cmp bl, 1
jne 0x48b81f
cmp byte [ebp + 0x2c], 0x49
jne 0x48b81d
mov eax, dword [esi]
mov ecx, dword [esi + 4]
lea ecx, [ecx + ecx*8]
mov dl, 1
cmp byte [eax + ecx*4 - 8], 0
jne 0x48b81f
lea eax, [eax + ecx*4]
cmp byte [eax - 0x1c], 0
jne 0x48b81f
cmp byte [eax - 7], 0
setne dl
jmp 0x48b81f
xor ebx, ebx
jmp 0x48bd7f
xor edx, edx
mov dword [esp + 0x10], edx
mov ecx, esi
mov edx, edi
call fcn.0048b510
mov byte [esp + 0xa], 1
test al, al
jne 0x48b847
mov eax, dword [esi]
mov ecx, dword [esi + 4]
lea ecx, [ecx + ecx*8]
cmp byte [eax + ecx*4 - 2], 0
setne byte [esp + 0xa]
cmp bh, 2
jne 0x48b887
mov eax, dword [edi + 0xa4]
test eax, eax
je 0x48b876
movzx ecx, word [eax + 0xc]
cmp cx, 5
je 0x48b887
cmp cx, 0x14
jne 0x48b876
mov eax, dword [eax + 0xa0]
test eax, eax
je 0x48b887
cmp byte [eax + 0x2c], 1
je 0x48b887
mov eax, dword [edi + 0xa8]
test eax, eax
je 0x48b887
cmp word [eax + 0xc], 0x14
jne 0x48b8d0
mov eax, dword [esi]
mov ecx, dword [esi + 4]
lea ecx, [ecx + ecx*8]
cmp byte [eax + ecx*4 - 1], 0
setne byte [esp + 0xb]
mov eax, dword [esi + 0x130]
mov eax, dword [eax]
test eax, eax
je 0x48b931
nop dword [eax]
movzx ecx, word [eax + 0xc]
cmp cx, 4
jne 0x48b8c4
mov eax, dword [eax + 0xa8]
test eax, eax
jne 0x48b8b0
cmp cx, 0x7c
sete al
mov dword [esp], eax
jmp 0x48b938
mov eax, dword [eax + 0xa8]
test eax, eax
je 0x48b887
cmp word [eax + 0xc], 0x14
jne 0x48b8d0
mov eax, dword [eax + 0xa8]
mov byte [esp + 0xb], 1
test eax, eax
je 0x48b899
mov ecx, dword [esi + 0x13c]
mov ecx, dword [ecx + 0xfc]
movzx edx, word [eax + 0xc]
cmp dx, 0x7e
jle 0x48bf68
mov dword [esp + 4], ecx
mov dword [esp], eax
lea ecx, [edx - 0x7f]
cmp cx, 0xe
ja 0x48bf8d
mov eax, 0x7001
bt eax, ecx
jb 0x48b899
jmp 0x48bf8d
mov dword [esp], 0
cmp bl, 1
mov dword [esp + 0xc], edi
jne 0x48b9a2
cmp word [edi + 0xc], 0x13
jne 0x48b9a2
mov eax, 0x18000010
mov ecx, edi
nop
mov ecx, dword [ecx + 0xa4]
test ecx, ecx
je 0x48b9a2
movzx edx, word [ecx + 0xc]
cmp dx, 0x4b
jg 0x48b980
cmp dx, 0x1c
ja 0x48b9a2
movzx edx, dx
bt eax, edx
jb 0x48b950
jmp 0x48b9a2
cmp dx, 0x50
je 0x48b950
cmp dx, 0x6d
je 0x48b950
cmp dx, 0x4c
jne 0x48b9a2
mov byte [edi + 0x2c], 0x48
mov dword [esp], 1
jmp 0x48bb2d
mov eax, dword [esp + 0x10]
mov edx, dword [esp]
or al, dl
je 0x48b9e0
mov dword [esp + 4], 0
cmp byte [edi + 0x2c], 0x5d
jne 0x48ba6f
cmp byte [esp + 4], 0
je 0x48ba7b
mov dword [esp], 1
mov byte [edi + 0x2c], 0x3a
mov al, 1
mov dword [esp + 4], eax
jmp 0x48bb35
mov dword [esp + 4], 0
cmp byte [esp + 0xa], 0
jne case.0x48ba68.0
cmp bl, 1
jne case.0x48ba68.0
cmp byte [esp + 0xb], 0
jne case.0x48ba68.0
mov eax, dword [esi]
mov ecx, dword [esi + 4]
lea ecx, [ecx + ecx*8]
cmp byte [eax + ecx*4 - 8], 0
je 0x48b9ad
cmp byte [edi + 0x2c], 0x30
je 0x48b9ad
mov eax, dword [esi + 0x134]
movzx eax, word [eax + 0xc]
cmp ax, 0x17
setne cl
cmp ax, 0x14
setne dl
and dl, cl
mov dword [esp + 4], edx
test ebp, ebp
je 0x48bf0c
cmp ax, 0x14
mov edx, dword [esp]
je case.0x48ba68.0
cmp ax, 0x17
je case.0x48ba68.0
mov eax, dword [ebp + 0xc]
mov cl, 1
mov dword [esp + 4], ecx
mov ecx, eax
add ecx, 0xffffffed
cmp cx, 0x52
ja case.default.0x48ba68
movzx ecx, cx
jmp dword [ecx*4 + 0x558e18]
mov dword [esp], 1
jmp 0x48bb35
test dl, dl
je 0x48ba8f
mov dword [esp], 1
mov byte [edi + 0x2c], 0x1e
jmp 0x48bb2d
cmp byte [esp + 0xa], 0
jne 0x48bb22
mov ecx, dword [esi + 0x12c]
mov cl, byte [ecx + 0x11f]
test ebp, ebp
je 0x48badc
cmp cl, 4
jne 0x48badc
mov edx, dword [esi]
mov ebx, dword [esi + 4]
lea ebx, [ebx + ebx*8]
cmp word [edx + ebx*4 - 0x24], 0x17
jne 0x48bb17
movzx edx, word [ebp + 0xc]
cmp dx, 0x41
je 0x48bacf
cmp dx, 0x17
jne 0x48bb17
mov dword [esp], 1
mov byte [edi + 0x2c], 0x20
jmp 0x48bb2d
mov edx, ecx
and dl, 0xfb
cmp dl, 1
jne 0x48bb17
test ebp, ebp
je 0x48bb17
mov edx, dword [esi]
mov ebx, dword [esi + 4]
lea ebx, [ebx + ebx*8]
cmp word [edx + ebx*4 - 0x24], 0x17
jne 0x48bb17
movzx edx, word [ebp + 0xc]
cmp dx, 0x41
je 0x48bb0a
cmp dx, 0x17
jne 0x48bb17
mov dword [esp], 1
mov byte [edi + 0x2c], 0x11
jmp 0x48bb2d
cmp byte [esp + 0xb], 0
je 0x48bf14
mov dword [esp], 1
mov byte [edi + 0x2c], 5
mov dword [esp + 4], 0
mov ecx, dword [esi]
mov edx, dword [esi + 4]
lea ebx, [edx + edx*8]
mov al, byte [ecx + ebx*4 - 0x1c]
mov edi, dword [esp]
add edi, dword [ecx + ebx*4 - 0x20]
mov word [esp + 0x14], 0x13
mov dword [esp + 0x18], edi
mov byte [esp + 0x1c], al
mov dword [esp + 0x28], 0
mov dword [esp + 0x2c], 0
mov dword [esp + 0x20], 0
mov dword [esp + 0x23], 0
mov byte [esp + 0x30], 1
mov dword [esp + 0x31], 0
mov dword [esp + 0x34], 0
add edx, 1
cmp edx, dword [esi + 8]
ja 0x48c1ad
lea ebx, [esp + 0x14]
mov edi, dword [esp + 0xc]
mov eax, dword [esi + 4]
lea eax, [eax + eax*8]
mov edx, dword [ebx + 0x20]
mov dword [ecx + eax*4 + 0x20], edx
movups xmm0, xmmword [ebx]
movups xmm1, xmmword [ebx + 0x10]
movups xmmword [ecx + eax*4 + 0x10], xmm1
movups xmmword [ecx + eax*4], xmm0
mov eax, dword [esi + 4]
lea ecx, [eax + 1]
mov dword [esi + 4], ecx
mov ecx, dword [esi]
lea eax, [eax + eax*8]
mov byte [ecx + eax*4 + 8], 1
test ebp, ebp
je 0x48bbf6
mov eax, dword [esi + 0x12c]
cmp byte [eax + 0x11f], 4
jne 0x48bbf6
cmp byte [ebp + 0x2c], 0x28
jne 0x48bbf6
mov eax, dword [esi]
mov ecx, dword [esi + 4]
lea ecx, [ecx + ecx*8]
mov byte [eax + ecx*4 - 0x1c], 0
mov eax, dword [esi]
mov ecx, dword [esi + 4]
lea ecx, [ecx + ecx*8]
mov edx, dword [esp + 4]
mov byte [eax + ecx*4 - 0x12], dl
mov eax, dword [esi]
mov ecx, dword [esi + 4]
lea ecx, [ecx + ecx*8]
mov dl, byte [esp + 0xa]
mov byte [eax + ecx*4 - 2], dl
mov eax, dword [esi]
mov ecx, dword [esi + 4]
lea ecx, [ecx + ecx*8]
mov dl, byte [esp + 0xb]
mov byte [eax + ecx*4 - 1], dl
mov eax, dword [esi + 0x134]
test eax, eax
je 0x48bd79
mov dword [esp], 0
nop dword [eax + eax]
movzx ecx, word [eax + 0xc]
cmp cx, 0x3c
jle 0x48bc90
cmp cx, 0x3d
jne 0x48bd30
cmp byte [esp + 0xa], 0
je 0x48bcf0
mov ecx, dword [eax + 0xa4]
test ecx, ecx
je 0x48bcf0
nop dword [eax]
movzx edx, word [ecx + 0xc]
cmp dx, 4
jne 0x48bcb5
mov ecx, dword [ecx + 0xa4]
test ecx, ecx
jne 0x48bc70
jmp 0x48bcf0
cmp cx, 0x14
je 0x48bd94
xor ebx, ebx
cmp cx, 0x16
je 0x48bd7b
cmp cx, 0x18
jne 0x48bd30
jmp 0x48bd7b
cmp dx, 5
jne 0x48bcf0
nop dword [eax + eax]
mov ecx, dword [ecx + 0xa4]
test ecx, ecx
je 0x48bcf0
movzx edx, word [ecx + 0xc]
cmp dx, 4
je 0x48bcc0
movzx ecx, dx
cmp ecx, 0x97
jne 0x48bcf0
mov byte [eax + 0x2c], 2
jmp 0x48bd26
mov al, byte [edi + 0x2c]
or al, 0x10
cmp al, 0x11
jne 0x48bd26
mov byte [edi + 0x2c], 0x3a
mov eax, dword [esi]
mov ecx, dword [esi + 4]
lea ecx, [ecx + ecx*8]
mov byte [eax + ecx*4 - 0x12], 1
mov al, 1
mov dword [esp], eax
test ebp, ebp
je 0x48bd1e
cmp word [ebp + 0xc], 0x16
jne 0x48bd1e
mov byte [ebp + 0x2c], 9
mov al, 1
mov dword [esp + 4], eax
jmp 0x48bd30
mov al, 1
mov dword [esp], eax
nop dword [eax + eax]
mov ebx, dword [esi + 0x134]
cmp word [ebx + 0xc], 0x41
jne 0x48bd53
test byte [esp], 1
jne 0x48bd53
cmp byte [edi + 0x2c], 0x3a
jne 0x48bd53
mov byte [edi + 0x2c], 0
mov ebx, dword [esi + 0x134]
mov ecx, esi
call fcn.00489750
test al, al
je 0x48bd79
mov ecx, esi
mov edx, edi
push ebx
call fcn.0048b2c0
add esp, 4
mov eax, dword [esi + 0x134]
test eax, eax
jne 0x48bc40
xor ebx, ebx
add dword [esi + 4], 0xffffffff
mov ecx, dword [esp + 0x38]
xor ecx, esp
call fcn.00533ace
mov eax, ebx
add esp, 0x3c
pop esi
pop edi
pop ebx
pop ebp
ret
cmp byte [esp + 0xa], 0
je 0x48bd9f
mov byte [eax + 0x2c], 5
mov eax, dword [esi + 0x134]
cmp byte [esp + 0xb], 0
je 0x48bdb2
mov byte [eax + 0x2c], 5
jmp 0x48bde1
mov ecx, dword [eax + 0xa8]
test ecx, ecx
je 0x48bdc3
cmp word [ecx + 0xc], 0x15
je 0x48bdd5
mov eax, dword [eax + 0xa4]
test eax, eax
je 0x48bde1
cmp dword [eax + 0xa4], edi
jne 0x48bde1
cmp byte [edi + 0x2c], 0x3a
jne 0x48bde1
mov byte [edi + 0x2c], 0x5d
jmp 0x48be40
test byte [esp + 4], 1
je 0x48be40
mov eax, dword [esi + 0x134]
cmp dword [eax + 0xa4], edi
je 0x48be40
mov byte [eax + 0x2c], 0x3a
test byte [esp], 1
jne 0x48be32
mov eax, dword [esi + 0x134]
mov eax, dword [eax + 0xa4]
test eax, eax
je 0x48be32
cmp byte [eax + 0x2c], 0x5d
jne 0x48be32
cmp dword [eax + 8], 0
je 0x48be32
mov ecx, dword [eax + 0xc]
cmp cx, 1
je 0x48be32
add ecx, 0xfffffff9
cmp cx, 0xc
jb 0x48be32
mov byte [eax + 0x2c], 0x44
test ebp, ebp
je 0x48be40
cmp byte [ebp + 0x2c], 0x40
jne 0x48be40
mov byte [ebp + 0x2c], 6
mov eax, dword [esi + 0x134]
cmp byte [eax + 0x2c], 0x3a
jne 0x48be66
mov ecx, dword [eax + 0xa8]
test ecx, ecx
je 0x48be66
cmp byte [ecx + 0x2c], 0x2e
jne 0x48be66
mov byte [ecx + 0x2c], 0x5d
mov eax, dword [esi + 0x134]
mov dword [edi + 0xa0], eax
mov eax, dword [esi + 0x134]
mov dword [eax + 0xa0], edi
mov eax, dword [esi]
mov ecx, dword [esi + 4]
lea ecx, [ecx + ecx*8]
mov eax, dword [eax + ecx*4 - 0x10]
test eax, eax
je 0x48bece
mov eax, dword [eax + 0x70]
mov dword [edi + 0x44], eax
mov eax, dword [esi]
mov ecx, dword [esi + 4]
lea edx, [ecx + ecx*8]
mov ecx, dword [eax + edx*4 - 0x10]
test ecx, ecx
je 0x48bec0
lea eax, [eax + edx*4]
mov eax, dword [eax - 0x18]
mov dword [ecx + 0x6c], eax
cmp dword [edi + 0x48], 2
jb 0x48bec0
mov eax, dword [esi]
mov ecx, dword [esi + 4]
lea ecx, [ecx + ecx*8]
mov eax, dword [eax + ecx*4 - 0x10]
mov dword [eax + 0x6c], 0
mov ecx, esi
call fcn.00487e00
mov bl, 1
jmp 0x48bd7b
mov eax, dword [esi + 0x134]
nop word cs:[eax + eax]
nop
mov eax, dword [eax + 0xa4]
test eax, eax
je 0x48be8e
cmp word [eax + 0xc], 4
je 0x48bee0
cmp byte [eax + 0x2c], 0x44
jne 0x48be8e
mov dword [eax + 0x70], 1
mov ecx, dword [esi]
mov edx, dword [esi + 4]
lea edx, [edx + edx*8]
mov dword [ecx + edx*4 - 0x10], eax
jmp 0x48be8e
mov edx, dword [esp]
jmp case.0x48ba68.0
test ebp, ebp
je 0x48bf3b
mov edx, dword [esi + 0x134]
cmp word [edx + 0xc], 0x14
jne 0x48bf3b
cmp byte [ebp + 0x2c], 0x49
jne 0x48bf3b
mov dword [esp], 1
mov byte [edi + 0x2c], 1
jmp 0x48bb2d
cmp cl, 8
je 0x48bf49
cmp cl, 6
jne 0x48c0b9
mov byte [edi + 0x2c], 0
mov ecx, edi
movzx edx, word [ecx + 0xc]
cmp dx, 4
jne 0x48bfc0
mov ecx, dword [ecx + 0xa4]
test ecx, ecx
jne 0x48bf4f
jmp 0x48bffe
cmp dx, 4
je 0x48b899
cmp dx, 0x13
je 0x48b899
mov dword [esp + 4], ecx
mov dword [esp], eax
cmp dx, 0x66
je 0x48b899
mov ecx, dword [esp + 4]
test ecx, ecx
mov eax, dword [esp]
je 0x48c164
cmp dx, 1
je 0x48c15a
add edx, 0xfffffff9
cmp dx, 0xc
mov edx, 0
jb 0x48c15c
mov edx, dword [eax + 8]
jmp 0x48c15c
cmp dx, 0x13
jne 0x48bffe
mov ecx, dword [ecx + 0xa4]
test ecx, ecx
je 0x48bffe
movzx edx, word [ecx + 0xc]
cmp dx, 4
je 0x48bfc6
cmp dx, 7
jne 0x48bffe
mov ecx, dword [ecx + 0xa4]
test ecx, ecx
je 0x48bffe
movzx edx, word [ecx + 0xc]
cmp dx, 4
je 0x48bfe0
cmp dx, 0x3f
je 0x48b996
mov ecx, edi
movzx edx, word [ecx + 0xc]
cmp dx, 4
jne 0x48c016
mov ecx, dword [ecx + 0xa4]
test ecx, ecx
jne 0x48c000
jmp 0x48c054
cmp dx, 0x13
jne 0x48c054
mov ecx, dword [ecx + 0xa4]
test ecx, ecx
je 0x48c054
movzx edx, word [ecx + 0xc]
cmp dx, 4
je 0x48c01c
cmp dx, 7
jne 0x48c054
mov ecx, dword [ecx + 0xa4]
test ecx, ecx
je 0x48c054
movzx edx, word [ecx + 0xc]
cmp dx, 4
je 0x48c036
cmp dx, 5
je 0x48b996
mov ecx, edi
movzx edx, word [ecx + 0xc]
cmp dx, 4
jne 0x48c06c
mov ecx, dword [ecx + 0xa4]
test ecx, ecx
jne 0x48c056
jmp 0x48c0b3
cmp dx, 0x13
jne 0x48c0b3
mov ecx, dword [ecx + 0xa4]
test ecx, ecx
je 0x48c0b3
movzx edx, word [ecx + 0xc]
cmp dx, 4
je 0x48c072
cmp dx, 0x3d
jne 0x48c0b3
mov ecx, dword [ecx + 0xa4]
test ecx, ecx
je 0x48c0b3
mov edx, ecx
cmp word [ecx + 0xc], 4
jne 0x48c0a9
mov ecx, dword [edx + 0xa4]
test ecx, ecx
jne 0x48c096
cmp byte [edx + 0x2c], 0x44
je 0x48b996
mov byte [edi + 0x2c], 0x4c
jmp 0x48c0fc
mov dword [esp], 1
test ebp, ebp
je case.0x48c0e8.1
mov eax, dword [esp + 0x10]
xor al, 1
je case.0x48c0e8.1
mov cl, byte [ebp + 0x2c]
cmp cl, 6
je case.0x48c0e8.0
cmp cl, 0x49
je case.0x48c0e8.0
mov ecx, dword [ebp + 0xc]
add ecx, 0xffffffed
cmp cx, 0x4f
ja case.0x48c0e8.1
movzx ecx, cx
jmp dword [ecx*4 + 0x558f64]
mov byte [edi + 0x2c], 0
jmp 0x48bb2d
mov byte [edi + 0x2c], 1
mov dword [esp], 0xa
jmp 0x48bb2d
movzx ecx, ax
cmp ecx, 0x92
je case.0x48ba68.0
cmp ecx, 0x9b
je case.0x48ba68.0
mov cl, byte [ebp + 0x2c]
cmp cl, 9
je case.0x48ba68.0
cmp cl, 0x39
je case.0x48ba68.0
movzx eax, ax
push 1
push 1
push eax
call fcn.00526e30
mov edx, dword [esp + 0xc]
add esp, 0xc
test eax, eax
setg al
mov dword [esp + 4], eax
jmp case.0x48ba68.0
xor edx, edx
cmp edx, ecx
je 0x48b899
mov eax, dword [eax + 0xa8]
test eax, eax
je 0x48b887
movzx ecx, word [eax + 0xc]
cmp cx, 4
je 0x48c164
cmp cx, 5
jne 0x48b887
mov eax, dword [eax + 0xa8]
test eax, eax
je 0x48b887
movzx ecx, word [eax + 0xc]
cmp cx, 4
je 0x48c186
cmp cx, 0x15
jne 0x48b887
jmp 0x48b899
lea eax, [ecx + ebx*4]
lea ebx, [esp + 0x14]
cmp eax, ebx
seta al
cmp ecx, ebx
ja 0x48c1c1
test al, al
jne 0x48c1d6
lea eax, [esi + 0xc]
mov ecx, esi
push 0x24
push edx
push eax
call fcn.00424880
mov ecx, dword [esi]
jmp 0x48bb9c
lea ebx, [esp + 0x14]
sub ebx, ecx
lea eax, [esi + 0xc]
mov ecx, esi
push 0x24
push edx
push eax
call fcn.00424880
mov ecx, dword [esi]
add ebx, ecx
jmp 0x48bb9c