Function at 0x402dd0
Capabilities:
Authenticate hmac
Parse credit card information

Disassembly:
sub esp, 0x28
or eax, 0xffffffff
mov word [esp + 0x10], ax
push ebp
xor ecx, ecx
mov eax, 0x65
xor ebp, ebp
mov dword [esp + 0x20], eax
mov edx, 2
mul edx
seto cl
push esi
push edi
mov dword [esp + 0x24], ebp
neg ecx
or ecx, eax
push ecx
call fcn.0041171a
add esp, 4
xor ecx, ecx
push 4
mov dword [esp + 0x24], eax
mov word [eax], cx
call fcn.0041171a
add esp, 4
test eax, eax
je 0x42b3f4
mov dword [eax], 1
mov dword [esp + 0x2c], eax
mov edx, dword [esp + 0x3c]
cmp dword [edx + 8], ebp
jbe 0x402e63
xor edi, edi
mov eax, edx
mov ecx, dword [eax + 4]
mov esi, dword [ecx + edi*4]
test esi, esi
je 0x402e5d
movzx eax, word [esi + 8]
cmp ax, 0x3f
jle 0x402f2d
push esi
call fcn.004112ef
mov eax, dword [esp + 0x40]
add esp, 4
inc edi
cmp edi, dword [eax + 8]
jb 0x402e38
mov edx, dword [esp + 0x3c]
mov dword [edx + 8], ebp
cmp word [ebx], bp
je 0x40306f
jmp 0x402e80
movzx eax, word [ebx + ebp*2]
cmp ax, 0x20
je 0x402f85
cmp ax, 9
je 0x402f85
movzx eax, word [ebx + ebp*2]
test ax, ax
je 0x40305a
movzx esi, ax
mov dword [esp + 0x10], ebp
mov word [esp + 0x1e], bp
cmp si, 0x30
jae 0x402f8b
cmp si, 0x2e
je 0x402f95
cmp si, 0x41
jae 0x4030f9
cmp si, 0x61
jae 0x403363
cmp si, 0x5f
je 0x403103
movzx eax, si
cmp eax, 0x24
je 0x4030be
cmp eax, 0x3d
je 0x40313a
cmp eax, 0x28
je 0x403177
cmp eax, 0x29
je 0x403159
cmp eax, 0x22
je case.0x402f26.39
sub eax, 0x1a
cmp eax, 0x44
ja case.0x402f26.27
movzx ecx, byte [eax + 0x403428]
jmp dword [ecx*4 + 0x4033ec]
cmp ax, 0x30
jl 0x402e50
mov ecx, dword [esi]
test ecx, ecx
je 0x402e50
mov eax, dword [ecx + 0xc]
dec dword [eax]
mov edx, dword [ecx + 0xc]
mov dword [esp + 0x10], ecx
cmp dword [edx], ebp
je 0x42b3fd
mov ecx, dword [esp + 0x10]
push ecx
call fcn.004112ef
add esp, 4
jmp 0x402e50
mov edi, 0x40
lea esi, [esp + 0x14]
call fcn.00402b00
mov edi, dword [esp + 0x3c]
push esi
call fcn.00402cc0
inc ebp
jmp 0x40304f
inc ebp
jmp 0x402e80
cmp si, 0x39
ja 0x402ebb
lea eax, [esp + 0x20]
push eax
lea ecx, [esp + 0x18]
push ecx
push ebx
lea eax, [esp + 0x1c]
call fcn.004035d0
cmp al, 1
jne 0x42b421
mov edi, dword [esp + 0x3c]
lea edx, [esp + 0x14]
push edx
call fcn.00402cc0
mov ebp, dword [esp + 0x10]
jmp 0x40304f
cmp ax, 0x30
jae 0x40323a
cmp ax, 0x5f
je 0x4030ec
cmp dword [esp + 0x24], 0
je 0x42b5d0
lea eax, [esp + 0x20]
call fcn.00402ae0
mov esi, dword [esp + 0x24]
mov edi, dword [esp + 0x20]
push esi
push edi
call dword [sym.imp.USER32.dll_CharUpperBuffW]
cmp word [esp + 0x1c], 0x30
jge 0x40328e
mov edx, 0x33
push 0x10
mov word [esp + 0x20], dx
call fcn.0041171a
add esp, 4
test eax, eax
je 0x42b5c3
mov ecx, dword [esp + 0x2c]
mov edx, dword [esp + 0x28]
mov dword [eax], edi
mov dword [eax + 4], esi
mov dword [eax + 8], edx
mov dword [eax + 0xc], ecx
inc dword [ecx]
mov dword [esp + 0x14], eax
lea eax, [esp + 0x14]
push eax
mov edi, dword [esp + 0x40]
call fcn.00402cc0
cmp word [ebx + ebp*2], 0
jne 0x402e80
mov ax, word [esp + 0x1c]
cmp ax, 0x30
jl 0x40306f
cmp ax, 0x3f
jle 0x40326d
mov edi, dword [esp + 0x3c]
lea ecx, [esp + 0x14]
mov eax, 0x7f
push ecx
mov word [esp + 0x20], ax
mov dword [esp + 0x18], 0
mov word [esp + 0x22], bp
call fcn.00402cc0
mov esi, dword [esp + 0x2c]
add dword [esi], 0xffffffff
jne 0x4030b3
mov edx, dword [esp + 0x20]
push edx
call fcn.004112ef
add esp, 4
push esi
call fcn.004112ef
add esp, 4
xor eax, eax
pop edi
pop esi
pop ebp
add esp, 0x28
ret 8
lea esi, [esp + 0x20]
inc ebp
call fcn.00403770
movzx eax, word [ebx + ebp*2]
cmp ax, 0x5a
ja 0x4030d8
cmp ax, 0x41
jae 0x4030ec
cmp ax, 0x61
jb 0x402fc8
cmp ax, 0x7a
ja 0x402fc8
push eax
lea eax, [esp + 0x24]
call fcn.00403470
inc ebp
jmp 0x4030c8
cmp si, 0x5a
ja 0x402ecf
lea ecx, [esp + 0x20]
push ecx
lea edx, [esp + 0x18]
push edx
lea eax, [esp + 0x18]
mov ecx, ebx
call fcn.00402b70
cmp dword [esp + 0x14], 0xffffffff
je 0x42b5fe
mov edi, dword [esp + 0x3c]
lea eax, [esp + 0x14]
push eax
call fcn.00402cc0
mov ebp, dword [esp + 0x10]
jmp 0x40304f
inc ebp
cmp word [ebx + ebp*2], 0x3d
lea esi, [esp + 0x14]
je 0x42b599
mov edi, 0x41
call fcn.00402b00
jmp 0x403041
mov edi, 0x48
lea esi, [esp + 0x14]
call fcn.00402b00
mov edi, dword [esp + 0x3c]
push esi
call fcn.00402cc0
inc ebp
jmp 0x40304f
mov edi, 0x47
lea esi, [esp + 0x14]
call fcn.00402b00
mov edi, dword [esp + 0x3c]
push esi
call fcn.00402cc0
inc ebp
jmp 0x40304f
mov edx, dword [esp + 0x38]
push edx
lea eax, [esp + 0x24]
lea edi, [esp + 0x14]
call fcn.00403530
lea esi, [esp + 0x14]
test eax, eax
jne 0x42b68a
lea edi, [eax + 0x36]
call fcn.00402b00
lea esi, [esp + 0x20]
lea edi, [esp + 0x14]
call fcn.00402650
push edi
mov edi, dword [esp + 0x40]
call fcn.00402cc0
mov ebp, dword [esp + 0x10]
jmp 0x40304f
mov edi, 0x4d
lea esi, [esp + 0x14]
call fcn.00402b00
inc ebp
cmp word [ebx + ebp*2], 0x3d
je 0x403372
push esi
jmp 0x403046
mov edi, 0x49
lea esi, [esp + 0x14]
call fcn.00402b00
inc ebp
cmp word [ebx + ebp*2], 0x3d
je 0x403387
push esi
jmp 0x403046
mov edi, 0x4c
lea esi, [esp + 0x14]
call fcn.00402b00
inc ebp
cmp word [ebx + ebp*2], 0x3d
jne 0x403041
jmp 0x42b529
cmp ax, 0x39
jbe 0x4030ec
jmp 0x402fd2
mov edi, 0x4b
lea esi, [esp + 0x14]
call fcn.00402b00
inc ebp
cmp word [ebx + ebp*2], 0x3d
je 0x42b4f7
lea ecx, [esp + 0x14]
push ecx
jmp 0x403046
mov esi, dword [esp + 0x14]
test esi, esi
je 0x40306f
mov ecx, esi
call fcn.00402620
push esi
call fcn.004112ef
add esp, 4
jmp 0x40306f
cmp word [esp + 0x1c], 0x3f
jg 0x40300c
jmp 0x42b5a9
mov edi, 0x4e
lea esi, [esp + 0x14]
call fcn.00402b00
mov edi, dword [esp + 0x3c]
push esi
call fcn.00402cc0
inc ebp
jmp 0x40304f
mov edi, 0x4f
lea esi, [esp + 0x14]
call fcn.00402b00
mov edi, dword [esp + 0x3c]
push esi
call fcn.00402cc0
inc ebp
jmp 0x40304f
lea esi, [esp + 0x20]
inc ebp
call fcn.00403770
movzx eax, word [ebx + ebp*2]
cmp ax, 0x5a
ja 0x4032f5
cmp ax, 0x41
jae 0x403301
cmp ax, 0x61
jb 0x40330e
cmp ax, 0x7a
ja 0x40330e
push eax
lea eax, [esp + 0x24]
call fcn.00403470
inc ebp
jmp 0x4032e5
cmp ax, 0x30
jae 0x42b4be
cmp ax, 0x5f
je 0x403301
cmp dword [esp + 0x24], 0
je 0x42b62f
lea eax, [esp + 0x20]
call fcn.00402ae0
mov edx, dword [esp + 0x24]
mov eax, dword [esp + 0x20]
push edx
push eax
call dword [sym.imp.USER32.dll_CharUpperBuffW]
mov edi, 0x32
lea esi, [esp + 0x14]
call fcn.00402b00
lea esi, [esp + 0x20]
lea edi, [esp + 0x14]
call fcn.00402650
push edi
jmp 0x403046
cmp si, 0x7a
jbe 0x403103
jmp 0x402ed9
mov edi, 0x56
lea esi, [esp + 0x14]
inc ebp
call fcn.00402b00
push esi
jmp 0x403046
mov edi, 0x52
lea esi, [esp + 0x14]
inc ebp
call fcn.00402b00
push esi
jmp 0x403046
movzx eax, word [ebx + ebp*2 + 2]
inc ebp
sub eax, 0x3d
lea esi, [esp + 0x14]
je 0x42b54d
sub eax, 1
je 0x42b53d
mov edi, 0x43
call fcn.00402b00
lea edx, [esp + 0x14]
push edx
jmp 0x403046
inc ebp
cmp word [ebx + ebp*2], 0x3d
lea esi, [esp + 0x14]
je 0x42b55d
mov edi, 0x42
call fcn.00402b00
jmp 0x403041
stc
invalid
test ebp, esp
clc
invalid
jmp 0x42b4ce
invalid
in al, dx
ljmp 0xd49a
mov ch, 0x58
cld
invalid
inc dword [ebx - 0x7a72f33c]
call 0x5142b52c
push dword [ebp - 0x718]
push 5
push dword [ebp - 0x3a8]
call dword [ebp - 0x6e4]
call fcn.00429fe7
mov ch, 0x58
cld
invalid
in eax, dx
cmp al, 0x64
int 0x83
movsd dword es:[edi], dword [esi]
add cl, bh
invalid
stc
invalid
add eax, 0x858b107d
add cl, bh
invalid
jmp 0xc4c6b59d
sub ecx, eax
mov dword [ebp - 0x540], ecx
push 4
mov eax, dword [ebp - 0x378]
mov ecx, dword [ebp - 4]
lea eax, [ecx + eax - 0x14]
push eax
lea eax, [ebp - 0xc]
push eax
call fcn.00429f58
add esp, 0xc
movsx eax, byte [ebp - 8]
hlt
clc
mov ecx, dword [ebp - 0xc]
sub ecx, eax
mov dword [ebp - 0xc], ecx
push 4
mov eax, dword [ebp - 0x378]
mov ecx, dword [ebp - 4]
lea eax, [ecx + eax - 0x10]
push eax
lea eax, [ebp - 0x400]
push eax
call fcn.00429f58
add esp, 0xc
movsx eax, byte [ebp - 8]
mov ecx, dword [ebp - 0x400]
sub ecx, eax
mov dword [ebp - 0x400], ecx
call fcn.00429fe7
outsb dx, byte [esi]
mov bh, 0xca
pop ds
push 4
mov eax, dword [ebp - 0x378]
mov ecx, dword [ebp - 4]
lea eax, [ecx + eax - 0xc]
push eax
lea eax, [ebp - 0x54c]
push eax
call fcn.00429f58
add ah, bh
invalid
add esp, 0xc
movsx eax, byte [ebp - 8]
mov ecx, dword [ebp - 0x54c]
sub ecx, eax
mov dword [ebp - 0x54c], ecx
call fcn.00429fe7
sahf
jmp 0x396bb64a
invalid
sahf
jmp 0x396bb64a
inc esp
add esp, edi
push eax
lea eax, [ebp - 0x678]
push eax
call fcn.00429f58
add esp, 0xc
movsx eax, byte [ebp - 8]
mov ecx, dword [ebp - 0x678]
sub ecx, eax
mov dword [ebp - 0x678], ecx
push 4
mov eax, dword [ebp - 4]
add eax, dword [ebp - 0x678]
push eax
lea eax, [ebp - 0x38c]
push eax
call fcn.00429f58
add esp, 0xc
mov eax, dword [ebp - 0x38c]
mov ecx, dword [ebp - 0x678]
lea eax, [ecx + eax + 4]
mov dword [ebp - 0x3ac], eax
push 4
mov eax, dword [ebp - 4]
add eax, dword [ebp - 0x3ac]
push eax
lea eax, [ebp - 0x688]
push eax
call fcn.00429f58
add esp, 0xc
mov eax, dword [ebp - 0x678]
mov ecx, dword [ebp - 4]
lea eax, [ecx + eax + 4]
mov dword [ebp - 0x748], eax
test dword [eax - 0x74000008], edi
test dword [esp + edi*8 - 1], edx
invalid
mov ecx, dword [ebp - 4]
cld
lea eax, [ecx + eax + 4]
mov dword [ebp - 0x6f8], eax
and dword [ebp - 0x700], 0
jmp 0x42b737
mov eax, dword [ebp - 0x700]
inc eax
mov dword [ebp - 0x700], eax
mov eax, dword [ebp - 0x700]
cmp eax, dword [ebp - 0x38c]
jae 0x42b789
mov eax, dword [ebp - 0x748]
add eax, dword [ebp - 0x700]
movsx eax, byte [eax]
movsx ecx, byte [ebp - 8]
xor eax, ecx
mov ecx, dword [ebp - 0x748]
add ecx, dword [ebp - 0x700]
mov byte [ecx], al
mov eax, dword [ebp - 0x748]
add eax, dword [ebp - 0x700]
movsx eax, byte [eax]
not eax
mov ecx, dword [ebp - 0x748]
add ecx, dword [ebp - 0x700]
mov byte [ecx], al
jmp 0x42b72a
and dword [ebp - 0x700], 0
jmp 0x42b79f
mov eax, dword [ebp - 0x700]
inc eax
mov dword [ebp - 0x700], eax
mov eax, dword [ebp - 0x700]
cmp eax, dword [ebp - 0x688]
stc
invalid
push dword [ebx + 0x44]
mov eax, dword [ebp - 0x6f8]
add eax, dword [ebp - 0x700]
movsx eax, byte [eax]
movsx ecx, byte [ebp - 8]
xor eax, ecx
mov ecx, dword [ebp - 0x6f8]
add ecx, dword [ebp - 0x700]
mov byte [ecx], al
mov eax, dword [ebp - 0x6f8]
add eax, dword [ebp - 0x700]
movsx eax, byte [eax]
not eax
mov ecx, dword [ebp - 0x6f8]
add ecx, dword [ebp - 0x700]
mov byte [ecx], al
jmp 0x42b792
and byte [ebp - 0x714], 0
and byte [ebp - 0x713], 0
mov byte [ebp - 0x712], 0x71
and byte [ebp - 0x711], 0
mov byte [ebp - 0x710], 0xc8
mov byte [ebp - 0x70f], 0xe2
mov byte [ebp - 0x70e], 0xe1
mov byte [ebp - 0x70d], 0xe1
mov byte [ebp - 0x70c], 0xea
mov byte [ebp - 0x70b], 0xc8
mov byte [ebp - 0x70a], 0xe7
mov byte [ebp - 0x709], 0xf6
mov byte [ebp - 0x708], 0xbc
mov byte [ebp - 0x707], 0x8e
call fcn.00429fe7
fsub st(2)
inc ecx
scasd eax, dword es:[edi]
and byte [ebp - 0x744], 0
and byte [ebp - 0x743], 0
mov byte [ebp - 0x742], 2
and byte [ebp - 0x741], 0
mov byte [ebp - 0x740], 0xb1
mov byte [ebp - 0x73f], 0x92
mov byte [ebp - 0x73e], 0x9c
mov byte [ebp - 0x73d], 0x99
mov byte [ebp - 0x73c], 0xb1
mov byte [ebp - 0x73b], 0x94
mov byte [ebp - 0x73a], 0x9f
mov byte [ebp - 0x739], 0x8f
mov byte [ebp - 0x738], 0x9c
mov byte [ebp - 0x737], 0x8f
mov byte [ebp - 0x736], 0x84
mov byte [ebp - 0x735], 0xbc
mov byte [ebp - 0x734], 0xfd
lea eax, [ebp - 0x744]
push eax
call fcn.00429ff7
pop ecx
push eax
push dword [ebp + 0x18]
push dword [ebp + 0x14]
call fcn.00429fac
add esp, 0xc
mov dword [ebp - 0x704], eax
and byte [ebp - 0x6f4], 0
and byte [ebp - 0x6f3], 0
mov byte [ebp - 0x6f2], 0x43
and byte [ebp - 0x6f1], 0
mov byte [ebp - 0x6f0], 0xeb
mov byte [ebp - 0x6ef], 0xce
mov byte [ebp - 0x6ee], 0xd5
mov byte [ebp - 0x6ed], 0xc8
mov byte [ebp - 0x6ec], 0xd9
mov byte [ebp - 0x6eb], 0xfa
mov byte [ebp - 0x6ea], 0xd5
mov byte [ebp - 0x6e9], 0xd0
mov byte [ebp - 0x6e8], 0xd9
mov byte [ebp - 0x6e7], 0xbc
call fcn.00429fe7
cwde
adc dword [ebx + 0x36], ebx
lea eax, [ebp - 0x6f4]
push eax
call fcn.00429ff7
pop ecx
push eax
push dword [ebp + 0x18]
push dword [ebp + 0x14]
call fcn.00429fac
add esp, 0xc
mov dword [ebp - 0x730], eax
and dword [ebp - 0x6fc], 0