Function at 0x51e240
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
mov ecx, eax
xor ebx, ebx
shl ecx, 6
add ecx, eax
mov dword [esp + 0x10], ebx
mov dword [esp + 0x14], ebx
mov dword [esp + 0x20], ebx
lea esi, [eax + ecx*4]
mov ecx, dword [esp + 0x2c]
shl esi, 2
movsx edx, word [esi + edi + 0x570]
mov dword [esp + 0x28], edx
lea edx, [ecx + ecx*2]
shl edx, 4
add edx, ecx
shl edx, 2
cmp eax, ebx
mov dword [esp + 0x18], edx
movsx ecx, word [edx + 0xc7d116]
mov dword [esp + 0x2c], ecx
mov cx, word [esi + edi + 0x326]
movsx ebp, cx
mov dword [esp + 0x1c], ebp
jg 0x51e2b1
pop edi
pop esi
pop ebp
xor eax, eax
pop ebx
add esp, 0x14
ret 0xc
cmp dword [esp + 0x2c], eax
jne 0x51e2c3
pop edi
pop esi
pop ebp
xor eax, eax
pop ebx
add esp, 0x14
ret 0xc
mov bp, word [edx + 0xc7d09e]
cmp bp, 9
jne 0x51e2dc
pop edi
pop esi
pop ebp
xor eax, eax
pop ebx
add esp, 0x14
ret 0xc
cmp bp, 0x16
jne 0x51e3ad
cmp word [esi + edi + 0x538], bx
je 0x51e2fc
pop edi
pop esi
pop ebp
xor eax, eax
pop ebx
add esp, 0x14
ret 0xc
movsx edx, word [esi + 0x12bc62e]
cmp dword [edx*4 + 0x60eee4], ebx
je 0x51e3a1
mov eax, dword [esp + 0x30]
cmp eax, ebx
mov eax, dword [esi + edi + 0x660]
je 0x51e326
add eax, 0xfffffe70
jmp 0x51e32b
add eax, 0xffffff38
cmp eax, ebx
mov dword [esi + edi + 0x660], eax
jg 0x51e363
mov eax, 1
mov dword [esi + edi + 0x660], ebx
mov word [esi + edi + 0x538], ax
mov dword [esi + edi + 0x548], ebx
mov word [esi + edi + 0x558], 0x73
mov word [esi + edi + 0x38e], ax
mov eax, dword [esi + edi + 0x664]
mov ecx, dword [esi + edi + 0x660]
push eax
push ecx
mov ecx, 0x116fd10
call fcn.0045ef70
movsx ecx, ax
mov word [esi + edi + 0x56c], ax
mov eax, 0x66666667
imul ecx
sar edx, 2
mov eax, edx
shr eax, 0x1f
add edx, eax
mov word [esi + edi + 0x2d0], dx
pop edi
pop esi
pop ebp
xor eax, eax
pop ebx
add esp, 0x14
ret 0xc
cmp cx, 0x28
mov ebx, 1
jne 0x51e3c7
mov eax, dword [esp + 0x30]
neg eax
sbb eax, eax
and al, 0xd8
add eax, 0x50
jmp 0x51e413
cmp cx, 0x3a
jne 0x51e3d4
mov eax, 0x50
jmp 0x51e413
cmp cx, 0x27
jne 0x51e3e1
mov eax, 0x32
jmp 0x51e413
cmp cx, 0x3c
jne 0x51e3ee
mov eax, 0x5a
jmp 0x51e413
cmp cx, 0x3b
jne 0x51e3fb
mov eax, 0x28
jmp 0x51e413
cmp cx, 0x29
jne 0x51e408
mov eax, 0x46
jmp 0x51e413
cmp cx, 0x3d
mov eax, 0x2a
jne 0x51e417
mov dword [esp + 0x10], ebx
cmp bp, 3
je 0x51e42f
cmp bp, 2
je 0x51e42f
cmp bp, 4
je 0x51e42f
cmp bp, 0x14
jne 0x51e433
mov dword [esp + 0x14], ebx
mov bx, word [edx + 0xc7d0a0]
mov bp, word [esi + edi + 0x32e]
movsx edx, bx
movsx ebp, bp
mov edx, dword [edx*4 + 0xb2df84]
cmp edx, dword [ebp*4 + 0xb2df84]
jne 0x51e4a2
mov edx, dword [esp + 0x14]
test edx, edx
jne 0x51e46c
pop edi
pop esi
pop ebp
xor eax, eax
pop ebx
add esp, 0x14
ret 0xc
cmp cx, 0x3c
jne 0x51e47e
pop edi
pop esi
pop ebp
xor eax, eax
pop ebx
add esp, 0x14
ret 0xc
cmp cx, 0x3a
jne 0x51e490
pop edi
pop esi
pop ebp
xor eax, eax
pop ebx
add esp, 0x14
ret 0xc
cmp cx, 0x3b
jne 0x51e4a2
pop edi
pop esi
pop ebp
xor eax, eax
pop ebx
add esp, 0x14
ret 0xc
cmp word [esi + edi + 0x538], 0
je 0x51e4b9
pop edi
pop esi
pop ebp
xor eax, eax
pop ebx
add esp, 0x14
ret 0xc
movsx ecx, word [esi + edi + 0x354]
movsx edx, word [esi + edi + 0x352]
mov ebp, dword [esp + 0x18]
add ecx, edx
movsx edx, word [ebp + 0xc7d0b0]
cmp ecx, edx
jle 0x51e4e6
pop edi
pop esi
pop ebp
xor eax, eax
pop ebx
add esp, 0x14
ret 0xc
add ecx, eax
cmp ecx, edx
jge 0x51e4f8
pop edi
pop esi
pop ebp
xor eax, eax
pop ebx
add esp, 0x14
ret 0xc
test bx, bx
je 0x51e50f
cmp bx, word [esi + edi + 0x32e]
je 0x51e50f
mov word [esi + edi + 0x698], bx
mov eax, dword [0xb08954]
test eax, eax
jne 0x51e56b
cmp dword [0xb08938], 6
jne 0x51e56b
mov eax, dword [0xb0898c]
test eax, eax
jne 0x51e56b
mov eax, dword [0xb08990]
test eax, eax
jne 0x51e56b
mov ebx, 1
push str.ap_milit_07.wav
push 0x12
mov ecx, 0x12b1550
mov dword [0xb08990], ebx
call fcn.0045e150
push 0xe0000001
mov ecx, 0x12b1550
call fcn.0045e130
push eax
mov ecx, 0x116fd30
call fcn.00461b90
jmp 0x51e570
mov ebx, 1
mov eax, dword [0x1215de0]
test eax, eax
je 0x51e593
movsx eax, word [esi + edi + 0x32e]
cmp eax, dword [0x12b11ac]
jne 0x51e593
mov ecx, 0xc757c0
call fcn.0043e5a0
mov eax, dword [esp + 0x14]
test eax, eax
jne 0x51e64c
cmp word [ebp + 0xc7d09e], bx
jne 0x51e5b9
movsx ecx, word [esi + edi + 0x326]
mov eax, dword [ecx*4 + 0x6097dc]
jmp 0x51e5c8
movsx edx, word [esi + edi + 0x326]
mov eax, dword [edx*4 + 0x6098f4]
movsx ecx, word [ebp + 0xc7d0a0]
push ecx
push eax
mov ecx, edi
call fcn.0051dd30
mov ecx, eax
mov eax, dword [esp + 0x10]
test eax, eax
je 0x51e5eb
mov eax, ecx
cdq
sub eax, edx
sar eax, 1
mov ecx, eax
mov al, byte [esi + edi + 0x5c4]
test al, al
jne 0x51e5fd
add dword [0xb08974], 0x32
movsx edx, word [ebp + 0xc7d0b6]
movsx eax, word [ebp + 0xc7d0cc]
sub edx, 0x1e
cmp eax, edx
jge 0x51e84a
cmp word [esi + edi + 0x326], 0x1e
jne 0x51e83a
cmp word [esi + edi + 0x620], 0
je 0x51e83a
mov eax, 0x66666667
imul ecx
mov ecx, edx
sar ecx, 3
mov edx, ecx
shr edx, 0x1f
add ecx, edx
jmp 0x51e84a
mov ax, word [ebp + 0xc7d09e]
cmp ax, 0x17
jne 0x51e685
mov cx, word [esi + edi + 0x326]
cmp cx, 0x37
jne 0x51e671
mov ecx, 0x32
jmp 0x51e7b3
sub cx, 0x3c
neg cx
sbb ecx, ecx
and ecx, 0x1c2
jmp 0x51e7b0
cmp ax, 4
jne 0x51e721
mov cx, word [esi + edi + 0x326]
cmp cx, 0x37
jne 0x51e6a7
mov ecx, 0x32
jmp 0x51e7b3
cmp cx, 0x3c
jne 0x51e6b7
mov ecx, 0x5dc
jmp 0x51e7b3
cmp cx, 0x3d
jne 0x51e6c7
mov ecx, 0x3e8
jmp 0x51e7b3
cmp cx, 0x29
jne 0x51e6d7
mov ecx, 0x1f4
jmp 0x51e7b3
cmp cx, 0x27
jne 0x51e6e7
mov ecx, 0x1388
jmp 0x51e7b3
cmp cx, 0x28
jne 0x51e6f7
mov ecx, 0x1388
jmp 0x51e7b3
cmp cx, 0x3b
jne 0x51e707
mov ecx, 0x2710
jmp 0x51e7b3
sub cx, 0x3a
neg cx
sbb ecx, ecx
and ecx, 0x4e20
add ecx, 0x2710
jmp 0x51e7b3
mov cx, word [esi + edi + 0x326]
cmp ax, 0x14
jne 0x51e7a1
cmp cx, 0x37
jne 0x51e73c
mov ecx, 0x32
jmp 0x51e7b3
cmp cx, 0x3c
jne 0x51e749
mov ecx, 0x1f4
jmp 0x51e7b3
cmp cx, 0x3d
jne 0x51e756
mov ecx, 0x7d0
jmp 0x51e7b3
cmp cx, 0x29
jne 0x51e763
mov ecx, 0x7d0
jmp 0x51e7b3
cmp cx, 0x27
jne 0x51e770
mov ecx, 0x9c4
jmp 0x51e7b3
cmp cx, 0x28
jne 0x51e77d
mov ecx, 0xfa0
jmp 0x51e7b3
cmp cx, 0x3b
jne 0x51e78a
mov ecx, 0x4e20
jmp 0x51e7b3
sub cx, 0x3a
neg cx
sbb ecx, ecx
and ecx, 0xffffd8f0
add ecx, 0x4e20
jmp 0x51e7b3
sub cx, 0x37
neg cx
sbb ecx, ecx
and ecx, 0x74fe
add ecx, 0x32
mov eax, dword [0xb08974]
add eax, 0x32
cmp ecx, 0x4e20
mov dword [0xb08974], eax
jle 0x51e5fd
mov eax, dword [esp + 0x28]
mov word [esi + edi + 0x538], bx
test eax, eax
jle 0x51e7eb
mov edx, eax
shl edx, 6
add edx, eax
mov word [edx*8 + 0x14eb198], bx
xor ebp, ebp
push 0xa5
mov dword [esi + edi + 0x548], ebp
mov word [esi + edi + 0x558], 0x72
mov word [esi + edi + 0x38e], bx
movsx eax, word [esi + edi + 0x35e]
movsx ecx, word [esi + edi + 0x35c]
push eax
push ecx
mov ecx, 0xc757c0
call fcn.0043cbb0
mov dword [esi + edi + 0x660], ebp
pop edi
pop esi
mov eax, ebx
pop ebp
pop ebx
add esp, 0x14
ret 0xc
mov eax, 0x55555556
imul ecx
mov ecx, edx
mov eax, ecx
shr eax, 0x1f
add ecx, eax
mov edx, dword [esi + edi + 0x660]
sub edx, ecx
xor ecx, ecx
mov eax, edx
mov dword [esi + edi + 0x660], edx
cmp eax, ecx
jg 0x51e869
mov dword [esi + edi + 0x660], ecx
mov edx, dword [esp + 0x2c]
mov ebx, dword [esp + 0x28]
cmp edx, ecx
je 0x51e8de
mov eax, ebx
shl eax, 6
add eax, ebx
shl eax, 3
mov word [eax + 0x14eb1ae], 0x64
inc word [eax + 0x14eb1b0]
cmp word [eax + 0x14eb1b0], 0xa
jl 0x51e8a0
mov word [eax + 0x14eb1b0], cx
movsx ebp, word [eax + 0x14eb1b0]
mov ecx, ebx
shl ecx, 6
add ecx, ebx
shl ecx, 2
add ebp, ecx
mov word [ebp*2 + 0x14eb0f4], dx
mov ebp, edx
movsx eax, word [eax + 0x14eb1b0]
shl ebp, 6
add ebp, edx
add eax, ecx
lea edx, [edx + ebp*4]
mov cx, word [edi + edx*4 + 0x330]
mov word [eax*2 + 0x14eb134], cx
mov edx, dword [esi + edi + 0x664]
mov eax, dword [esi + edi + 0x660]
push edx
push eax
mov ecx, 0x116fd10
call fcn.0045ef70
movsx ecx, ax
mov word [esi + edi + 0x56c], ax
mov eax, 0x66666667
imul ecx
mov eax, dword [esp + 0x1c]
sar edx, 2
mov ecx, edx
shr ecx, 0x1f
add edx, ecx
cmp eax, 0x11
mov word [esi + edi + 0x2d0], dx
je 0x51e945
cmp eax, 0x15
je 0x51e945
cmp eax, 0x38
je 0x51e945
cmp eax, 0x3f
je 0x51e945
cmp eax, 0x40
jne 0x51e94c
cmp word [esi + edi + 0x2a4], 0x81
jne 0x51e94c
mov ebp, 1
jmp 0x51e950
mov ebp, dword [esp + 0x20]
mov eax, dword [esi + edi + 0x660]
test eax, eax
jg 0x51ea74
mov eax, 1
test ebx, ebx
mov word [esi + edi + 0x538], ax
jle 0x51e97f
mov edx, ebx
shl edx, 6
add edx, ebx
mov word [edx*8 + 0x14eb198], ax
mov ecx, dword [esp + 0x18]
mov dword [esi + edi + 0x548], 0
cmp word [ecx + 0xc7d09e], 0x17
jne 0x51e9a4
mov word [esi + edi + 0x558], 0x72
jmp 0x51e9ae
mov word [esi + edi + 0x558], 0x6f
mov word [esi + edi + 0x38e], ax
mov al, byte [esi + edi + 0x5c4]
test al, al
je 0x51e9cb
push 0x94
jmp 0x51eafe
movsx eax, word [esi + edi + 0x326]
add eax, 0xffffffd9
cmp eax, 0x16
ja case.0x51e9e3.42
xor ecx, ecx
mov cl, byte [eax + 0x51eb3c]
jmp dword [ecx*4 + 0x51eb2c]
cmp word [esi + edi + 0x64c], 0
jne 0x51e9fc
push 0x70
jmp 0x51eafe
push 0x75
jmp 0x51eab6
push 0x70
jmp 0x51eae4
movsx edx, word [esi + edi + 0x35e]
movsx eax, word [esi + edi + 0x35c]
push 0x6f
push edx
push eax
mov ecx, 0xc757c0
call fcn.0043cbb0
test ebp, ebp
je 0x51ea6d
movsx ecx, word [esi + edi + 0x35e]
movsx edx, word [esi + edi + 0x35c]
lea ebx, [esi + edi + 0x35e]
lea esi, [esi + edi + 0x35c]
push 0xb6
push ecx
push edx
mov ecx, 0xc757c0
call fcn.0043cbb0
movsx eax, word [ebx]
movsx ecx, word [esi]
push 0xb8
push eax
push ecx
jmp 0x51eb10
push 0x75
jmp 0x51eafe
mov al, byte [esi + edi + 0x5c4]
test al, al
je 0x51ea86
push 0x94
jmp 0x51eab6
movsx eax, word [esi + edi + 0x326]
add eax, 0xffffffd9
cmp eax, 0x16
ja case.0x51ea9e.41
xor ecx, ecx
mov cl, byte [eax + 0x51eb60]
jmp dword [ecx*4 + 0x51eb54]
cmp word [esi + edi + 0x64c], 0
jle 0x51eb1a
push 0x78
jmp 0x51eafe
push 0x73
movsx ecx, word [esi + edi + 0x35e]
movsx edx, word [esi + edi + 0x35c]
push ecx
push edx
jmp 0x51eb10
mov eax, dword [esi + edi + 0x61c]
and eax, 0x80000003
jns 0x51eadd
dec eax
or eax, 0xfffffffc
inc eax
cmp eax, 3
jne 0x51eaf8
push 0x78
movsx eax, word [esi + edi + 0x35e]
movsx ecx, word [esi + edi + 0x35c]
push eax
push ecx
jmp 0x51eb10
add eax, 0x9b
push eax
movsx edx, word [esi + edi + 0x35e]
movsx eax, word [esi + edi + 0x35c]
push edx
push eax
mov ecx, 0xc757c0
call fcn.0043cbb0
pop edi
pop esi
pop ebp
mov eax, 1
pop ebx
add esp, 0x14
ret 0xc