Function at 0x5070a0
Capabilities:
Parse credit card information

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff0
sub esp, 0xf4
push ebx
push esi
mov esi, ecx
mov ecx, dword [esi + 0x1360]
xor ebx, ebx
cmp ecx, ebx
push edi
jne 0x5070cd
mov ecx, esi
call fcn.00504350
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 4
mov ax, word [esi + 0x80]
cmp ax, 0x46
je 0x5070e4
cmp ax, 0x47
mov byte [esp + 0x1a], bl
jne 0x5070e9
mov byte [esp + 0x1a], 1
cmp ax, 0x3e
je 0x50710a
mov cl, byte [ecx + 0x21e]
neg cl
movzx edx, ax
mov byte [esp + 0x1b], bl
sbb ecx, ecx
and ecx, 0xfffffff6
add ecx, 0x49
cmp edx, ecx
jne 0x50710f
mov byte [esp + 0x1b], 1
mov eax, dword [esi + 0xe54]
cmp byte [eax + 9], bl
jne 0x50719f
movaps xmm0, xmmword [eax + 0x350]
mov eax, dword [eax + 0x168]
push eax
lea ecx, [esp + 0x84]
push ecx
movaps xmmword [esp + 0x28], xmm0
call fcn.00603b20
add esp, 8
push eax
mov eax, dword [esi + 0xe54]
mov ecx, dword [eax + 0x1a0]
lea edx, [esp + 0x44]
push edx
push ecx
lea edx, [esp + 0xcc]
push edx
call fcn.00603c20
add esp, 8
mov ecx, eax
call fcn.006020a0
movaps xmm0, xmmword [eax + 0x20]
add eax, 0x20
mov eax, dword [esi + 0xe54]
fld dword [eax + 0x198]
lea ecx, [esp + 0x1c]
fchs
fstp dword [esp + 0x1c]
movss xmm1, dword [ecx]
shufps xmm1, xmm1, 0
mulps xmm0, xmm1
addps xmm0, xmmword [esp + 0x20]
movaps xmmword [eax + 0xf0], xmm0
mov ax, word [esi + 0x80]
cmp ax, 0x3e
je 0x5071d6
cmp ax, 0x3f
je 0x5071d6
cmp ax, 0x3a
je 0x5071d6
cmp ax, 0x3c
je 0x5071d6
cmp ax, 0x3b
je 0x5071d6
cmp ax, 0x3d
je 0x5071d6
cmp ax, 0x40
je 0x5071d6
cmp ax, 0x41
jne 0x507209
mov edx, dword [ebp + 8]
mov eax, dword [edx + 0xc]
test ah, ah
js 0x5071eb
mov ecx, esi
call fcn.005079d0
test al, al
je 0x507209
cmp dword [0x76ba40], ebx
je 0x507601
mov eax, dword [esi + 0xb44]
cmp eax, dword [0x725b2c]
jb 0x507601
mov ax, word [esi + 0x80]
cmp ax, 0x3e
je 0x507243
cmp ax, 0x3f
je 0x507243
cmp ax, 0x3a
je 0x507243
cmp ax, 0x3c
je 0x507243
cmp ax, 0x3b
je 0x507243
cmp ax, 0x3d
je 0x507243
mov ecx, esi
call fcn.0042ad40
test al, al
je 0x5072d9
mov eax, dword [esi + 0x1360]
mov ecx, dword [eax + 0x2a8]
cmp ecx, ebx
je 0x5072d9
push ecx
mov eax, esp
mov dword [eax], ebx
push ecx
mov eax, esp
mov dword [eax], ebx
push ecx
mov eax, esp
push ecx
mov dword [eax], ebx
mov eax, esp
push ecx
mov dword [eax], ebx
mov eax, esp
push ecx
mov dword [eax], ebx
mov eax, esp
push esi
mov edi, ecx
push 0x3e9
lea ecx, [esp + 0x40]
mov dword [eax], ebx
call fcn.00401d20
mov ecx, dword [edi]
cmp ecx, ebx
je 0x507299
push eax
push 0xb
push edi
call ecx
add esp, 0xc
cmp eax, ebx
jne 0x5072d9
cmp dword [0x6dddc8], ebx
jne 0x507618
push 0xe
mov ecx, 0x6ddda8
call fcn.00485250
cmp eax, 0x12c
jle 0x507618
push ebx
push 0xe
mov ecx, 0x6ddda8
call fcn.00486ae0
mov ecx, esi
call fcn.005061b0
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 4
mov ecx, esi
call fcn.004f2090
test al, al
jne 0x5072f3
mov ecx, esi
call fcn.004f20f0
test al, al
je 0x507393
mov ecx, dword [esi + 0xe54]
cmp byte [ecx + 9], bl
je 0x50730a
mov edx, dword [esi + 0x1360]
push edx
call fcn.00451760
mov eax, dword [esi + 0xe54]
movaps xmm0, xmmword [eax + 0x350]
mov eax, dword [eax + 0x168]
push eax
lea ecx, [esp + 0xc4]
push ecx
movaps xmmword [esp + 0x28], xmm0
call fcn.00603b20
add esp, 8
push eax
mov eax, dword [esi + 0xe54]
mov ecx, dword [eax + 0x1a0]
lea edx, [esp + 0x44]
push edx
push ecx
lea edx, [esp + 0x8c]
push edx
call fcn.00603c20
add esp, 8
mov ecx, eax
call fcn.006020a0
mov ecx, dword [esi + 0xe54]
fld dword [ecx + 0x198]
lea edx, [esp + 0x1c]
fchs
add eax, 0x20
fstp dword [esp + 0x1c]
movss xmm0, dword [edx]
movaps xmm1, xmm0
shufps xmm1, xmm0, 0
movaps xmm0, xmmword [eax]
mulps xmm0, xmm1
addps xmm0, xmmword [esp + 0x20]
movaps xmmword [ecx + 0xf0], xmm0
mov eax, dword [esi + 0x9d0]
cmp eax, ebx
je 0x5073b4
cmp eax, 1
je 0x5073b4
mov dword [esi + 0x9d0], 1
mov dword [esi + 0xac0], ebx
jmp 0x5073c4
mov dword [esi + 0x9d0], ebx
mov dword [esi + 0xac0], 1
push ebx
push ebx
push ebx
push ebx
push ebx
mov ecx, esi
call fcn.004ff490
mov eax, dword [esi + 0x1360]
push eax
mov ecx, esi
call fcn.004cd930
mov ecx, esi
call fcn.004f76b0
cmp dword [esi + 0x58], ebx
jne 0x507439
movaps xmm0, xmmword [esi + 0x40]
push ebx
lea ecx, [esp + 0x24]
push ecx
mov ecx, esi
movaps xmmword [esp + 0x28], xmm0
call fcn.004f5ef0
fcom dword [0x68b4fc]
fnstsw ax
test ah, 5
jp 0x507437
movaps xmm0, xmmword [esi + 0x40]
fstp dword [esp + 0x1c]
lea edx, [esp + 0x1c]
movss xmm1, dword [edx]
lea eax, [esp + 0x20]
unpcklps xmm1, xmm0
shufps xmm1, xmm0, 0xe1
push eax
mov ecx, esi
movaps xmmword [esp + 0x24], xmm1
call fcn.00401bc0
jmp 0x507439
fstp st(0)
cmp word [esi + 0x80], 0x52
jne 0x5074b3
lea ecx, [esi + 0x13c0]
push ecx
push ebx
lea edx, [esp + 0x28]
push edx
mov ecx, esi
call fcn.005efd30
push eax
mov ecx, 0x725b20
call fcn.0052b4a0
fstp dword [esp + 0x1c]
lea eax, [esp + 0x20]
push eax
mov ecx, esi
call fcn.005efd30
fld dword [esp + 0x1c]
movaps xmm0, xmmword [eax]
movaps xmm1, xmm0
shufps xmm1, xmm0, 0x55
movaps xmm0, xmmword [esi + 0x40]
movaps xmmword [esp + 0x20], xmm1
fsub dword [esp + 0x20]
movaps xmm1, xmmword [esi + 0x40]
lea ecx, [esp + 0x1c]
fstp dword [esp + 0x1c]
movss xmm2, dword [ecx]
movaps xmm3, xmm1
shufps xmm3, xmm1, 0x55
subss xmm3, xmm2
unpcklps xmm3, xmm0
shufps xmm3, xmm0, 0xe1
movaps xmmword [esi + 0x40], xmm3
mov ax, word [esi + 0x80]
cmp ax, 0x3e
je 0x5074e1
mov edx, dword [esi + 0x1360]
mov cl, byte [edx + 0x21e]
neg cl
movzx edx, ax
sbb ecx, ecx
and ecx, 0xfffffff6
add ecx, 0x49
cmp edx, ecx
je 0x5074e1
xor cl, cl
jmp 0x5074e3
mov cl, 1
cmp byte [esp + 0x1b], bl
je 0x5075d7
cmp cl, bl
jne 0x5075d7
cmp byte [esi + 0x1918], bl
je 0x507589
mov ecx, 0x6ddda8
call fcn.00485cd0
test al, al
jne 0x507552
mov ecx, dword [esi + 0xb48]
cmp ecx, 1
jne 0x507536
mov eax, dword [0x6f2234]
mov eax, dword [eax + 0x298]
cmp eax, ebx
je 0x507531
cmp byte [eax + 0x96], bl
jne 0x507536
push ebx
push 0x18
jmp 0x507548
cmp ecx, 2
jne 0x507540
push ebx
push 0x36
jmp 0x507548
cmp ecx, 5
jne 0x507552
push ebx
push 0x3c
mov ecx, 0x6ddda8
call fcn.00486ae0
mov ax, word [esi + 0x80]
cmp ax, 0x3b
je 0x507569
cmp ax, 0x43
je 0x507569
xor al, al
jmp 0x50756d
xor eax, eax
mov al, 1
mov ecx, dword [0x6f2258]
push ecx
mov ecx, dword [esi + 0x1360]
push eax
push ebx
call fcn.005a52f0
mov byte [esi + 0x1918], bl
jmp 0x5075d7
cmp ax, 0x3b
je 0x507599
cmp ax, 0x43
je 0x507599
xor al, al
jmp 0x50759d
xor eax, eax
mov al, 1
mov edx, dword [0x6f2258]
mov ecx, dword [esi + 0x1360]
push edx
push eax
push ebx
call fcn.005a52f0
test eax, eax
je 0x5075d7
mov eax, dword [esi + 0x1360]
cmp word [eax + 0xc], 0x41
je 0x5075d7
cmp dword [0x6dddc8], ebx
jne 0x5075d7
push ebx
push 0xd
mov ecx, 0x6ddda8
call fcn.00486ae0
cmp byte [esp + 0x1a], bl
je 0x50761f
mov ax, word [esi + 0x80]
cmp ax, 0x4a
je 0x5075f0
cmp ax, 0x4b
jne 0x50761f
push ebx
mov ecx, esi
call fcn.00506b60
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 4
fild dword [0x725b2c]
fadd dword [0x68b5f4]
call fcn.00602090
mov dword [esi + 0xb44], eax
mov ecx, esi
call fcn.005061b0
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 4