Function at 0x569180
Capabilities:
Parse credit card information

Disassembly:
sub esp, 0x14
mov eax, dword [esp + 0x18]
push ebx
push ebp
push esi
push edi
mov edi, ecx
lea ecx, [eax + eax*8]
xor ebx, ebx
mov dword [esp + 0x10], ebx
mov dword [esp + 0x14], ebx
lea esi, [eax + ecx*8]
mov ecx, dword [esp + 0x2c]
shl esi, 4
mov dword [esp + 0x2c], ebx
movsx edx, word [esi + edi + 0x598]
mov dword [esp + 0x18], edx
lea edx, [ecx*8]
sub edx, ecx
lea ebp, [ecx + edx*4]
mov cx, word [esi + edi + 0x34e]
movsx ebx, cx
shl ebp, 3
mov dword [esp + 0x20], ebx
xor ebx, ebx
movsx edx, word [ebp + 0xf0afa6]
cmp eax, ebx
mov dword [esp + 0x28], ebp
mov dword [esp + 0x1c], edx
jle case.0x569271.40
cmp edx, eax
je case.0x569271.40
mov dx, word [ebp + 0xf0af2e]
cmp dx, 9
je case.0x569271.40
cmp dx, 0x22
je case.0x569271.40
cmp dx, 0x16
jne 0x5693a4
cmp word [esi + edi + 0x560], bx
jne case.0x569271.40
mov eax, dword [esi + 0x177c314]
test dword [eax*4 + 0x111d120], 0x10000100
jne case.0x569271.40
mov ax, word [eax*2 + 0x11ba970]
cmp ax, bx
je case.0x569271.41
movsx eax, ax
lea ecx, [eax + eax*4]
lea ecx, [ecx + ecx*4]
lea edx, [eax + ecx*4]
lea eax, [eax + edx*2]
movsx eax, word [eax*4 + 0x1a46596]
add eax, 0xffffffd8
cmp eax, 0x26
ja case.0x569271.41
xor ecx, ecx
mov cl, byte [eax + 0x569d0c]
jmp dword [ecx*4 + 0x569d04]
movsx edx, word [esi + 0x177c2ce]
cmp dword [edx*4 + 0x681374], ebx
je 0x569398
mov edx, dword [esp + 0x30]
cmp edx, ebx
jne 0x56929b
mov edx, 0x190
jmp 0x5692a9
dec edx
neg edx
sbb edx, edx
and edx, 0xffffffce
add edx, 0xc8
movsx eax, word [esi + edi + 0x356]
mov ebp, 1
lea ecx, [eax + eax*2]
lea ecx, [eax + ecx*4]
shl ecx, 3
sub ecx, eax
lea ecx, [ecx + ecx*8]
lea eax, [eax + ecx*4]
mov eax, dword [eax*4 + 0xd60c08]
cmp eax, 3
jl 0x5692db
lea ecx, [edx + edx*4]
shl ecx, 3
jmp 0x569300
cmp eax, 2
jne 0x5692f6
imul edx, edx, 0x3c
mov eax, 0x51eb851f
imul edx
sar edx, 5
mov eax, edx
shr eax, 0x1f
add edx, eax
jmp 0x569311
cmp eax, ebp
jne 0x569311
lea ecx, [edx + edx*4]
shl ecx, 4
mov eax, 0x51eb851f
imul ecx
sar edx, 5
mov ecx, edx
shr ecx, 0x1f
add edx, ecx
mov ecx, dword [esi + edi + 0x688]
sub ecx, edx
mov eax, ecx
mov dword [esi + edi + 0x688], ecx
cmp eax, ebx
jg 0x56934f
mov dword [esi + edi + 0x688], ebx
mov word [esi + edi + 0x560], bp
mov dword [esi + edi + 0x570], ebx
mov word [esi + edi + 0x580], 0x73
mov word [esi + edi + 0x3b6], bp
mov ecx, dword [esi + edi + 0x68c]
cmp ecx, ebx
jne 0x569361
mov eax, 0x64
jmp 0x569374
mov eax, dword [esi + edi + 0x688]
lea eax, [eax + eax*4]
lea eax, [eax + eax*4]
shl eax, 2
cdq
idiv ecx
movsx ecx, ax
mov word [esi + edi + 0x594], ax
mov eax, 0x66666667
imul ecx
sar edx, 2
mov eax, edx
shr eax, 0x1f
add edx, eax
mov word [esi + edi + 0x2f8], dx
pop edi
pop esi
pop ebp
xor eax, eax
pop ebx
add esp, 0x14
ret 0xc
cmp cx, 0x28
mov ebx, 1
jne 0x5693be
mov eax, dword [esp + 0x30]
neg eax
sbb eax, eax
and al, 0xd8
add eax, 0x50
jmp 0x569417
cmp cx, 0x3a
jne 0x5693cb
mov eax, 0x50
jmp 0x569417
cmp cx, 0x27
jne 0x5693d8
mov eax, 0x32
jmp 0x569417
cmp cx, 0x3c
jne 0x5693e5
mov eax, 0x5a
jmp 0x569417
cmp cx, 0x3b
jne 0x5693f2
mov eax, 0x28
jmp 0x569417
cmp cx, 0x29
jne 0x5693ff
mov eax, 0x46
jmp 0x569417
cmp cx, 0x3d
jne 0x56940c
mov eax, 0x2a
jmp 0x569417
cmp cx, 0x4d
mov eax, 0x2a
jne 0x56941b
mov dword [esp + 0x10], ebx
cmp dx, 3
je 0x569439
cmp dx, 2
je 0x569439
cmp dx, 4
je 0x569439
cmp dx, 0x14
je 0x569439
cmp dx, 0x25
jne 0x56943d
mov dword [esp + 0x14], ebx
mov dx, word [ebp + 0xf0af30]
mov bx, word [esi + edi + 0x356]
mov dword [esp + 0x30], edx
movsx edx, dx
movsx ebx, bx
mov ebp, dword [edx*4 + 0xd7ea58]
cmp ebp, dword [ebx*4 + 0xd7ea58]
jne 0x5694ff
mov ebx, dword [esp + 0x14]
test ebx, ebx
jne 0x56947e
pop edi
pop esi
pop ebp
xor eax, eax
pop ebx
add esp, 0x14
ret 0xc
mov ebx, dword [esp + 0x28]
mov bx, word [ebx + 0xf0af2e]
cmp bx, 0x14
jne 0x56949b
pop edi
pop esi
pop ebp
xor eax, eax
pop ebx
add esp, 0x14
ret 0xc
cmp bx, 4
jne 0x5694b7
cmp dword [edx*4 + 0x1684660], 0xffffffff
jne 0x5694b7
pop edi
pop esi
pop ebp
xor eax, eax
pop ebx
add esp, 0x14
ret 0xc
cmp bx, 0x25
jne 0x5694c9
pop edi
pop esi
pop ebp
xor eax, eax
pop ebx
add esp, 0x14
ret 0xc
cmp cx, 0x3c
jne 0x5694db
pop edi
pop esi
pop ebp
xor eax, eax
pop ebx
add esp, 0x14
ret 0xc
cmp cx, 0x3a
jne 0x5694ed
pop edi
pop esi
pop ebp
xor eax, eax
pop ebx
add esp, 0x14
ret 0xc
cmp cx, 0x3b
jne 0x569507
pop edi
pop esi
pop ebp
xor eax, eax
pop ebx
add esp, 0x14
ret 0xc
mov ebx, dword [esp + 0x28]
xor ebp, ebp
jmp 0x56950d
mov ebx, dword [esp + 0x28]
xor ebp, ebp
cmp word [esi + edi + 0x560], bp
je 0x569523
pop edi
pop esi
pop ebp
xor eax, eax
pop ebx
add esp, 0x14
ret 0xc
movsx ecx, word [esi + edi + 0x37c]
movsx edx, word [esi + edi + 0x37a]
add ecx, edx
movsx edx, word [ebx + 0xf0af40]
cmp ecx, edx
jle 0x56954c
pop edi
pop esi
pop ebp
xor eax, eax
pop ebx
add esp, 0x14
ret 0xc
add ecx, eax
cmp ecx, edx
jge 0x56955e
pop edi
pop esi
pop ebp
xor eax, eax
pop ebx
add esp, 0x14
ret 0xc
mov eax, dword [esp + 0x30]
cmp ax, bp
je 0x569588
cmp ax, word [esi + edi + 0x356]
je 0x569588
mov word [esi + edi + 0x6c0], ax
mov ax, word [ebx + 0xf0afa6]
mov word [esi + edi + 0x6f6], ax
cmp dword [0x16845d0], ebp
je 0x5695aa
movsx ecx, word [esi + edi + 0x356]
cmp ecx, dword [0x176582c]
jne 0x5695aa
mov ecx, 0xf017d0
call fcn.0044a7d0
mov eax, dword [esp + 0x14]
cmp eax, ebp
mov ax, word [ebx + 0xf0af2e]
jne 0x56969a
cmp ax, 1
jne 0x5695f1
mov cx, word [esi + edi + 0x34e]
movsx edx, cx
cmp cx, 0x1d
mov eax, dword [edx*4 + 0x67a114]
jne 0x569617
cmp word [esi + edi + 0x580], 3
jne 0x569617
cdq
and edx, 3
add eax, edx
sar eax, 2
jmp 0x569617
cmp ax, 0x21
jne 0x569608
movsx eax, word [esi + edi + 0x34e]
mov eax, dword [eax*4 + 0x67a254]
jmp 0x569617
movsx ecx, word [esi + edi + 0x34e]
mov eax, dword [ecx*4 + 0x67a394]
movsx edx, word [ebx + 0xf0af30]
push edx
push eax
mov ecx, edi
call fcn.00568a10
mov ecx, eax
mov eax, dword [esp + 0x10]
cmp eax, ebp
je 0x56963a
mov eax, ecx
cdq
sub eax, edx
sar eax, 1
mov ecx, eax
mov al, byte [esi + edi + 0x5ec]
test al, al
jne 0x56964c
add dword [0xd16a98], 0x32
movsx edx, word [ebx + 0xf0af46]
movsx eax, word [ebx + 0xf0af5c]
sub edx, 0x1e
cmp eax, edx
jge 0x5698e7
cmp word [esi + edi + 0x34e], 0x1e
jne 0x5698c2
cmp word [esi + edi + 0x648], bp
je 0x5698c2
mov eax, 0x66666667
imul ecx
mov ecx, edx
sar ecx, 3
mov edx, ecx
shr edx, 0x1f
add ecx, edx
jmp 0x5698e7
cmp ax, 0x17
jne 0x5696cc
mov cx, word [esi + edi + 0x34e]
cmp cx, 0x37
jne 0x5696b8
mov ecx, 0x32
jmp 0x569836
sub cx, 0x3c
neg cx
sbb ecx, ecx
and ecx, 0x1c2
jmp 0x569833
cmp ax, 4
jne 0x569778
mov cx, word [esi + edi + 0x34e]
cmp cx, 0x37
jne 0x5696ee
mov ecx, 0x32
jmp 0x569836
cmp cx, 0x3c
jne 0x5696fe
mov ecx, 0x5dc
jmp 0x569836
cmp cx, 0x3d
jne 0x56970e
mov ecx, 0x3e8
jmp 0x569836
cmp cx, 0x4d
jne 0x56971e
mov ecx, 0x3e8
jmp 0x569836
cmp cx, 0x29
jne 0x56972e
mov ecx, 0x1f4
jmp 0x569836
cmp cx, 0x27
jne 0x56973e
mov ecx, 0x1388
jmp 0x569836
cmp cx, 0x28
jne 0x56974e
mov ecx, 0x1388
jmp 0x569836
cmp cx, 0x3b
jne 0x56975e
mov ecx, 0x2710
jmp 0x569836
sub cx, 0x3a
neg cx
sbb ecx, ecx
and ecx, 0x4e20
add ecx, 0x2710
jmp 0x569836
mov cx, word [esi + edi + 0x34e]
cmp ax, 0x14
jne 0x569824
cmp cx, 0x37
jne 0x569797
mov ecx, 0x32
jmp 0x569807
cmp cx, 0x3c
jne 0x5697a4
mov ecx, 0x1f4
jmp 0x569807
cmp cx, 0x3d
jne 0x5697b1
mov ecx, 0x7d0
jmp 0x569807
cmp cx, 0x29
jne 0x5697be
mov ecx, 0x7d0
jmp 0x569807
cmp cx, 0x4d
jne 0x5697cb
mov ecx, 0x7d0
jmp 0x569807
cmp cx, 0x27
jne 0x5697d8
mov ecx, 0x9c4
jmp 0x569807
cmp cx, 0x28
jne 0x5697e5
mov ecx, 0xfa0
jmp 0x569807
cmp cx, 0x3b
jne 0x5697f2
mov ecx, 0x4e20
jmp 0x569807
sub cx, 0x3a
neg cx
sbb ecx, ecx
and ecx, 0xffffd8f0
add ecx, 0x4e20
cmp word [ebx + 0xf0afd4], bp
je 0x569836
add ecx, ecx
mov eax, 0x55555556
imul ecx
mov ecx, edx
mov eax, ecx
shr eax, 0x1f
add ecx, eax
jmp 0x569836
sub cx, 0x37
neg cx
sbb ecx, ecx
and ecx, 0x74fe
add ecx, 0x32
mov eax, dword [0xd16a98]
add eax, 0x32
cmp ecx, 0x4e20
mov dword [0xd16a98], eax
jle 0x56964c
mov eax, dword [esp + 0x18]
mov ebx, 1
cmp eax, ebp
mov word [esi + edi + 0x560], bx
jle 0x569875
lea ecx, [eax + eax*4]
lea eax, [eax + ecx*8]
lea edx, [eax + eax*4]
mov word [edx*4 + 0x1bd5e40], bx
mov dword [esi + edi + 0x570], ebp
mov word [esi + edi + 0x580], 0x72
mov word [esi + edi + 0x3b6], bx
push 0xa5
movsx eax, word [esi + edi + 0x386]
movsx ecx, word [esi + edi + 0x384]
push eax
push ecx
mov ecx, 0xf017d0
call fcn.00448d00
mov dword [esi + edi + 0x688], ebp
pop edi
pop esi
mov eax, ebx
pop ebp
pop ebx
add esp, 0x14
ret 0xc
cmp word [ebx + 0xf0af2e], 0x14
jne 0x5698d7
mov eax, ecx
cdq
sub eax, edx
sar eax, 1
mov ecx, eax
jmp 0x5698e7
mov eax, 0x55555556
imul ecx
mov ecx, edx
mov eax, ecx
shr eax, 0x1f
add ecx, eax
mov edx, dword [esi + edi + 0x688]
sub edx, ecx
mov eax, edx
mov dword [esi + edi + 0x688], edx
cmp eax, ebp
jg 0x569904
mov dword [esi + edi + 0x688], ebp
mov ebx, dword [esp + 0x1c]
cmp ebx, ebp
je 0x5699aa
mov ax, word [esi + edi + 0x390]
cmp ax, 0x3e8
jge 0x56992b
add eax, 0xc8
mov word [esi + edi + 0x390], ax
mov ebp, dword [esp + 0x18]
lea ecx, [ebp + ebp*4]
lea eax, [ebp + ecx*8]
lea eax, [eax + eax*4]
shl eax, 2
mov word [eax + 0x1bd5e56], 0x64
inc word [eax + 0x1bd5e58]
cmp word [eax + 0x1bd5e58], 0xa
jl 0x569960
mov word [eax + 0x1bd5e58], 0
lea edx, [ebp + ebp*4]
lea ecx, [ebp + edx*8]
movsx edx, word [eax + 0x1bd5e58]
lea ecx, [ecx + ecx*4]
lea ecx, [edx + ecx*2]
lea edx, [ebx + ebx*8]
mov word [ecx*2 + 0x1bd5d9c], bx
lea ecx, [ebp + ebp*4]
movsx eax, word [eax + 0x1bd5e58]
lea ecx, [ebp + ecx*8]
lea edx, [ebx + edx*8]
shl edx, 4
lea ecx, [ecx + ecx*4]
mov edx, dword [edx + edi + 0x358]
add ecx, eax
mov dword [ecx*4 + 0x1bd5ea0], edx
jmp 0x5699ae
mov ebp, dword [esp + 0x18]
mov ecx, dword [esi + edi + 0x68c]
test ecx, ecx
jne 0x5699c0
mov eax, 0x64
jmp 0x5699d3
mov eax, dword [esi + edi + 0x688]
lea eax, [eax + eax*4]
lea eax, [eax + eax*4]
shl eax, 2
cdq
idiv ecx
movsx ecx, ax
mov word [esi + edi + 0x594], ax
mov eax, 0x66666667
imul ecx
sar edx, 2
mov eax, edx
shr eax, 0x1f
add edx, eax
mov eax, dword [esp + 0x20]
cmp eax, 0x11
mov word [esi + edi + 0x2f8], dx
je 0x569a20
cmp eax, 0x15
je 0x569a20
cmp eax, 0x38
je 0x569a20
cmp eax, 0x3f
je 0x569a20
cmp eax, 0x40
jne 0x569a2b
cmp word [esi + edi + 0x2cc], 0x81
jne 0x569a2b
mov edx, 1
mov dword [esp + 0x2c], edx
jmp 0x569a30
mov edx, 1
lea eax, [ebx + ebx*8]
xor ecx, ecx
mov dword [esp + 0x30], ecx
lea eax, [ebx + eax*8]
shl eax, 4
cmp word [eax + edi + 0x34e], 0x48
jne 0x569a50
mov ecx, edx
mov dword [esp + 0x30], ecx
mov eax, dword [esi + edi + 0x688]
test eax, eax
jg 0x569bea
test ebp, ebp
mov word [esi + edi + 0x560], dx
jle 0x569a7f
lea eax, [ebp + ebp*4]
lea ebp, [ebp + eax*8]
lea eax, [ebp + ebp*4]
mov word [eax*4 + 0x1bd5e40], dx
mov eax, dword [esp + 0x28]
mov dword [esi + edi + 0x570], 0
mov ax, word [eax + 0xf0af2e]
cmp ax, 0x17
jne 0x569aa7
mov word [esi + edi + 0x580], 0x72
jmp 0x569ac3
cmp ax, 0x21
jne 0x569ab9
mov word [esi + edi + 0x580], 0x72
jmp 0x569ac3
mov word [esi + edi + 0x580], 0x6f
mov word [esi + edi + 0x3b6], dx
mov al, byte [esi + edi + 0x5ec]
test al, al
je 0x569af6
test ecx, ecx
jne 0x569ae4
push 0x94
jmp 0x569c9a
cmp ecx, edx
jne case.0x569c2d.40
push 0xef
jmp 0x569cb8
movsx eax, word [esi + edi + 0x34e]
add eax, 0xffffffd9
cmp eax, 0x26
ja case.0x569b0e.42
xor ebx, ebx
mov bl, byte [eax + 0x569d44]
jmp dword [ebx*4 + 0x569d34]
cmp word [esi + edi + 0x674], 0
je 0x569b2b
test ecx, ecx
jne 0x569b2b
push 0x75
jmp 0x569cd6
push 0x70
jmp 0x569c9a
push 0x70
jmp 0x569cb8
movsx edx, word [esi + edi + 0x386]
movsx eax, word [esi + edi + 0x384]
push 0x6f
push edx
push eax
mov ecx, 0xf017d0
call fcn.00448d00
mov ecx, dword [esp + 0x30]
mov edx, 1
mov eax, dword [esp + 0x2c]
test eax, eax
je 0x569bcd
movsx ecx, word [esi + edi + 0x386]
movsx edx, word [esi + edi + 0x384]
lea ebp, [esi + edi + 0x386]
lea esi, [esi + edi + 0x384]
push 0xb6
push ecx
push edx
mov ecx, 0xf017d0
call fcn.00448d00
mov eax, dword [esp + 0x30]
test eax, eax
jne 0x569bb2
movsx eax, word [ebp]
movsx ecx, word [esi]
push 0xb8
push eax
push ecx
jmp 0x569ce8
cmp eax, 1
jne case.0x569c2d.40
movsx edx, word [ebp]
movsx eax, word [esi]
push 0xef
push edx
jmp 0x569ce7
test ecx, ecx
jne 0x569bd8
push 0x75
jmp 0x569c9a
cmp ecx, edx
jne case.0x569c2d.40
push 0xee
jmp 0x569cb8
mov al, byte [esi + edi + 0x5ec]
test al, al
je 0x569c15
test ecx, ecx
jne 0x569c03
push 0x94
jmp 0x569cd6
cmp ecx, edx
jne case.0x569c2d.40
push 0xef
jmp 0x569c9a
movsx eax, word [esi + edi + 0x34e]
add eax, 0xffffffd9
cmp eax, 0x26
ja case.0x569c2d.42
xor ecx, ecx
mov cl, byte [eax + 0x569d7c]
jmp dword [ecx*4 + 0x569d6c]
cmp word [esi + edi + 0x674], 0
jle case.0x569c2d.40
push 0x9b
jmp 0x569cd6
push 0x73
jmp 0x569c9a
mov eax, dword [esi + edi + 0x644]
and eax, 7
jne 0x569c61
push 0x78
jmp 0x569cb8
cmp eax, edx
jne 0x569c6c
push 0x9b
jmp 0x569cd6
cmp eax, 2
jne 0x569c78
push 0x9c
jmp 0x569c9a
cmp eax, 3
jne 0x569c84
push 0x9d
jmp 0x569cb8
cmp eax, 4
jne 0x569c90
push 0xf6
jmp 0x569cd6
cmp eax, 5
jne 0x569cae
push 0xf7
movsx ecx, word [esi + edi + 0x386]
movsx edx, word [esi + edi + 0x384]
push ecx
push edx
jmp 0x569ce8
cmp eax, 6
jne 0x569ccc
push 0xf8
movsx eax, word [esi + edi + 0x386]
movsx ecx, word [esi + edi + 0x384]
push eax
push ecx
jmp 0x569ce8
cmp eax, 7
jne case.0x569c2d.40
push 0xf9
movsx edx, word [esi + edi + 0x386]
movsx eax, word [esi + edi + 0x384]
push edx
push eax
mov ecx, 0xf017d0
call fcn.00448d00
pop edi
pop esi
pop ebp
mov eax, 1
pop ebx
add esp, 0x14
ret 0xc