Function at 0x40acd7
Capabilities:
Authenticate hmac
Encode data using base64
Parse credit card information
Resolve function by parsing pe exports

Disassembly:
pop ebx
dec ecx
add byte [ebx], dh
fstp xword [edi + 0x472c98]
add bh, al
add eax, 0x495bc0
or byte [eax + 0xd890048], al
or eax, 0x495bd8
mov dword [0x495bdc], esi
invalid
add eax, 0x495be4
in al, dx
jg 0x408233
add byte [ecx + 0x495bf41d], cl
add byte [ecx + 0x495bf81d], cl
add byte [ecx + 0x495bfc0d], cl
add bh, al
add eax, 0x495c08
aam 0x7f
dec eax
add byte [ecx + 0x495c1c15], cl
add bh, al
add eax, 0x495c2c
mov esp, 0x8900487f
adc eax, 0x495c40
add byte [eax - 0x76ffb781], ah
adc eax, 0x495c64
xor al, 2
add byte [ebx - 0x4d74f7ab], cl
xor al, 1
add byte [eax], al
loop 0x40a2bb
add al, byte [eax]
sbb al, 0x8b
dec esi
sbb al, 0x8b
push esp
and al, 0x78
xchg ah, bh
aaa
add al, byte [eax]
add esp, dword [esi - 0x75]
cmp byte [esi + 0x3b], ah
cmp dword [ebp + 0x10], esi
mov esi, dword [ebp + 0x10]
push 8
mov byte [esp + 0x38], bl
mov byte [esp + 0x39], 0
mov dword [esp + 0x18], esi
mov dword [esp + 0x1c], edi
mov dword [esp + 0x20], edi
mov byte [esp + 0x24], bl
mov byte [esp + 0x25], 0
call fcn.0041171a
add esp, 4
cmp eax, edi
je 0x42e7c5
mov dword [eax], 0x14
mov ecx, dword [ebp + 8]
mov dword [eax + 4], edi
mov edi, dword [ebp + 0xc]
mov edx, dword [ecx + 4]
mov dword [esp + 0x30], eax
mov eax, dword [edi]
mov eax, dword [edx + eax*4]
movsx eax, word [eax + 0xa]
mov dword [esp + 0x2c], ebx
mov dword [esp + 0x28], 0x17
mov dword [esp + 0x38], eax
mov ecx, dword [edi]
cmp ecx, dword [ebp + 0x14]
je case.0x40af29.2
mov edx, dword [ebp + 8]
mov eax, dword [edx + 4]
lea edx, [eax + ecx*4]
mov byte [ebx + 0x78836602], cl
or byte [edi + 0x74], bh
pop ds
movsx ebx, word [eax + 8]
cmp ebx, 0x36
je 0x40ac84
cmp ebx, 0x37
jl 0x40adcc
cmp ebx, 0x41
jge 0x40adcc
mov ebx, 0x14
mov dword [esp + 0xc], ebx
mov dword [esp + 0x28], ebx
lea ecx, [ecx]
mov cl, byte [esp + 0x35]
mov esi, dword [esp + 0x30]
test cl, cl
jne 0x40af3d
mov eax, esi
mov eax, dword [eax]
imul eax, eax, 0x15
movzx eax, byte [eax + ebx + 0x491ad0]
cmp eax, 3
jne 0x40aec3
cmp dword [esp + 0x18], 1
jne 0x42f332
mov eax, dword [esp + 0x1c]
test eax, eax
jne 0x40aff7
mov ebx, dword [esp + 0x18]
mov dword [esp + 0x28], 0x16
test ebx, ebx
jne 0x40b02a
cmp esi, 0x4a9388
je 0x40ad07
mov eax, dword [esi + 0xc]
test eax, eax
jne 0x42eec8
mov eax, dword [esi + 8]
cmp eax, 8
je 0x42eeda
cmp eax, 0xa
je 0x42eefb
cmp eax, 5
je 0x42ef10
cmp eax, 0xb
je 0x42ef1c
cmp eax, 0xc
je 0x42ef3a
pop edi
inc edx
add al, byte [eax]
mov dword [esi + 8], 1
mov dword [esi], 0
mov edx, dword [0x4a9390]
mov dword [esi + 8], edx
mov eax, dword [0x4a9390]
cmp eax, 1
jne 0x42ef4f
mov edx, dword [0x4a9388]
mov dword [esi], edx
mov eax, dword [ebp + 8]
mov edx, dword [edi]
mov ecx, dword [eax + 4]
mov eax, dword [ecx + edx*4]
inc ebx
mov dword [esp + 0x18], ebx
cmp ebx, 1
jne 0x40b051
mov dword [esp + 0xc], esi
mov ecx, dword [esp + 0xc]
mov ebx, dword [eax]
mov eax, dword [ecx + 0xc]
test eax, eax
jne 0x42f160
mov eax, dword [ecx + 8]
cmp eax, 8
je 0x42f176
cmp eax, 0xa
je 0x42f19b
cmp eax, 5
je 0x42f1b0
cmp eax, 0xb
je 0x42f1be
test byte [edx + 0x44], ah
add al, byte [eax]
cmp eax, 0xc
je 0x42f1e4
mov eax, dword [esp + 0xc]
push 0x10
mov dword [eax], 0
mov dword [eax + 8], 4
call fcn.0041171a
add esp, 4
test eax, eax
je 0x42f1f9
invalid
mov edx, dword [ebx]
mov dword [eax], edx
mov ecx, dword [ebx + 4]
mov dword [eax + 4], ecx
mov edx, dword [ebx + 8]
mov dword [eax + 8], edx
mov ebx, dword [ebx + 0xc]
mov dword [eax + 0xc], ebx
inc dword [ebx]
mov ecx, dword [esp + 0xc]
mov dword [ecx + 0xc], eax
mov eax, dword [esp + 0x24]
inc dword [edi]
cmp byte [eax + 0xfd], 0
jne 0x42f200
inc esp
add al, byte [eax]
cmp byte [eax + 0xfe], 0
je 0x40abd8
jmp 0x42f218
cmp ebx, 5
jne 0x40af19
mov ebx, dword [esp + 0x18]
mov dword [esp + 0x28], 0x16
test ebx, ebx
jne 0x40af45
add byte [eax], al
cmp esi, 0x4a9388
je 0x40ae57
mov eax, dword [esi + 0xc]
test eax, eax
jne 0x42eb90
mov eax, dword [esi + 8]
cmp eax, 8
je 0x42eba2
cmp eax, 0xa
je 0x42ebc3
cmp eax, 5
je 0x42ebd8
cmp eax, 0xb
je 0x42ebe4
cmp eax, 0xc
je 0x42ec02
mov dword [esi + 8], 1
mov dword [esi], 0
mov eax, dword [0x4a9390]
mov dword [esi + 8], eax
mov eax, dword [0x4a9390]
cmp eax, 1
jne 0x42ec17
mov edx, dword [0x4a9388]
mov dword [esi], edx
mov eax, dword [ebp + 8]
mov edx, dword [edi]
mov ecx, dword [eax + 4]
mov eax, dword [ecx + edx*4]
inc ebx
mov dword [esp + 0x18], ebx
cmp ebx, 1
jne 0x40af86
mov ebx, esi
mov ecx, dword [eax]
mov eax, dword [ebx + 0xc]
mov dword [esp + 0xc], ecx
test eax, eax
jne 0x42ee29
mov eax, dword [ebx + 8]
cmp eax, 8
je 0x42ee3f
cmp eax, 0xa
je 0x42ee64
cmp eax, 5
je 0x42ee7d
cmp eax, 0xb
je 0x42ee8d
cmp eax, 0xc
je 0x42eeaf
mov dword [ebx + 8], 1
mov dword [ebx], ecx
inc dword [edi]
jmp 0x40abd8
cmp eax, 6
ja case.0x40aec8.3
invalid
jmp dword [eax*4 + 0x40b2b0]
test cl, cl
jne 0x40afb5
push 8
call fcn.0041171a
add esp, 4
test eax, eax
je 0x42f231
mov dword [eax], ebx
mov dword [eax + 4], esi
mov dword [esp + 0x30], eax
inc dword [esp + 0x2c]
cmp ebx, 7
je 0x40b217
cmp ebx, 8
je 0x40b217
jmp 0x40af10
mov esi, dword [esp + 0x14]
jmp 0x40abd8
cmp ebx, 0x51
ja case.0x40af29.2
movzx ebx, byte [ebx + 0x40b32c]
jmp dword [ebx*4 + 0x40b2cc]
inc ecx
mov ebx, 0xd
mov dword [edi], ecx
jmp 0x40ac15
mov eax, dword [esi + 4]
jmp 0x40ac32
cmp byte [esp + 0x21], 0
jne 0x40afc1
push 0x18
call fcn.0041171a
add esp, 4
test eax, eax
je 0x42ee16
mov dword [esp + 0xc], eax
mov ebx, dword [esp + 0xc]
mov eax, 0x4a9388
call fcn.0040bd50
mov eax, ebx
mov ebx, dword [esp + 0x18]
mov ecx, dword [esp + 0x1c]
dec esp
and al, 0x1c
mov dword [eax + 0x10], ecx
mov dword [esp + 0x1c], eax
jmp 0x40ae57
cmp byte [esp + 0x21], 0
jne 0x42ee1d
mov ebx, dword [esp + 0x1c]
jmp 0x40ae72
lea ecx, [esp + 0x14]
push ecx
lea eax, [esp + 0x30]
call fcn.0040b9e0
test eax, eax
je 0x40ac20
jmp 0x42f332
mov dword [esi], ebx
mov byte [esp + 0x35], 0
jmp 0x40aef2
mov ebx, dword [esp + 0x1c]
push 0x4a9388
call fcn.00409210
mov ebx, dword [esp + 0x18]
mov byte [esp + 0x21], 0
jmp 0x40ae57
mov eax, dword [esp + 0x28]
cmp eax, 0x16
jne 0x40b16e
mov ebx, 0xb
inc ecx
mov dword [edi], ecx
jmp 0x40ac15
mov esi, eax
lea esp, [esp]
inc ecx
mov ebx, 0xe
mov dword [edi], ecx
jmp 0x40ac15
cmp byte [esp + 0x21], 0
je 0x40b134
mov ebx, dword [esp + 0x1c]
push 0x4a9388
call fcn.00409210
mov ebx, dword [esp + 0x18]
mov byte [esp + 0x21], 0
jmp 0x40ad07
cmp byte [esp + 0x21], 0
mov edx, dword [esp + 0x1c]
push esp
and al, 0x1c
jne 0x42f154
mov dword [esp + 0xc], edx
jmp 0x40ad24
mov edx, dword [esp + 0x30]
test cl, cl
je 0x40b0e1
mov eax, dword [edx + 4]
cmp dword [eax], 0x12
je 0x40b0d3
test cl, cl
je 0x40b0e5
mov eax, dword [edx + 4]
cmp dword [eax], 0x14
je case.0x40aec8.6
lea edx, [esp + 0x14]
push edx
lea eax, [esp + 0x30]
call fcn.0040b9e0
test eax, eax
jne 0x42f332
mov cl, byte [esp + 0x35]
jmp case.0x40aec8.2
inc ecx
mov ebx, 0x12
mov dword [edi], ecx
jmp 0x40ac15
inc ecx
mov ebx, 0x13
mov dword [edi], ecx
jmp 0x40ac15
inc ecx
mov ebx, 9
mov dword [edi], ecx
jmp 0x40ac15
lea esi, [esp + 0x2c]
call fcn.0040c250
jmp case.0x40aec8.3
mov eax, edx
jmp 0x40b07b
mov eax, edx
jmp 0x40b087
mov edi, 0x4a9388
lea esi, [esp + 0x14]
mov dword [esp + 0x28], 0x16
add byte [eax], al
add al, ch
add dword [edi], ecx
add byte [eax], al
cmp dword [esp + 0x18], 1
jne 0x40b203
mov eax, dword [esp + 0x14]
mov edx, dword [ebp + 8]
push eax
mov eax, dword [esp + 0x28]
push edx
push eax
mov eax, dword [ebp + 0xc]
call fcn.0040c300
test eax, eax
jne 0x42f29a
mov esi, dword [esp + 0x14]
mov edi, dword [ebp + 0xc]
jmp 0x40abd8
push 0x18
call fcn.0041171a
add esp, 4
test eax, eax
je 0x42f14d
mov dword [esp + 0xc], eax
mov ebx, dword [esp + 0xc]
mov eax, 0x4a9388
call fcn.0040bd50
mov eax, ebx
mov ebx, dword [esp + 0x18]
mov ecx, dword [esp + 0x1c]
mov dword [eax + 0x10], ecx
mov dword [esp + 0x1c], eax
jmp 0x40ad07
cmp eax, 0x13
je 0x40afea
jmp 0x42e8f3
mov edi, 0x4a9388
lea esi, [esp + 0x14]
mov dword [esp + 0x28], 0x16
call int.0040c000
cmp dword [esp + 0x18], 1
jne 0x42e87e
mov eax, dword [esp + 0x14]
mov edx, dword [ebp + 8]
mov ebx, dword [esp + 0x24]
push eax
mov eax, dword [ebp + 0xc]
call fcn.00409030
test eax, eax
jne 0x42f2bd
cmp dword [ebx + 0xf8], 1
je 0x42f2bd
mov esi, dword [esp + 0x14]
mov edi, dword [ebp + 0xc]
jmp 0x40abd8
mov eax, dword [eax]
cmp eax, 4
jl 0x40b1e2
cmp eax, 0x27
jl case.0x40af29.2
cmp eax, 1
jne 0x42e9d8
inc ecx
lea ebx, [eax + 6]
mov dword [edi], ecx
jmp 0x40ac15
inc ecx
mov ebx, 5
mov dword [edi], ecx
jmp 0x40ac15
cmp byte [esp + 0x21], 0
jne 0x42e872
mov eax, dword [esp + 0x1c]
jmp 0x40b10e
cmp dword [esp + 0x18], 0
je 0x40af10
lea eax, [esp + 0x14]
call fcn.0040d260
lea ebx, [esp + 0x60]
call fcn.0040bd50
mov ecx, ebx
call fcn.0040cfb0
test al, al
je 0x42f238
mov esi, 8
cmp dword [esp + 0xc], esi
je 0x42f248
test al, al
je 0x42f238
lea esi, [esp + 0x60]
call fcn.004092c0
mov esi, dword [esp + 0x14]
jmp 0x40abd8
mov dword [0x4a9388], edi
mov dword [0x4a9390], ebx
mov dword [0x4a9394], edi
call fcn.00411421
add esp, 4
jmp 0x40ab76
invalid