Function at 0x4abf9b
Capabilities:
Encode data using base64
Parse credit card information

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
sub esp, 0xc4
mov edx, dword [ebp + 8]
mov eax, dword [edx + 0xc]
mov ecx, dword [ebp + 0x10]
push ebx
xor ebx, ebx
push esi
push edi
mov dword [esp + 0x10], eax
mov dword [esp + 0x28], ecx
mov dword [esp + 0x2c], ebx
mov dword [esp + 0x30], ebx
cmp eax, ebx
jne 0x4abfd0
xor eax, eax
jmp 0x4ac982
mov edi, dword [ebp + 0xc]
cmp edi, ebx
jne 0x4abfdf
push 0x5c
pop esi
jmp 0x4ac4ff
movzx esi, byte [edi]
cmp esi, 0x58
jg 0x4ac4ec
je 0x4ac4bf
cmp esi, 0x40
jg 0x4ac2e5
je 0x4ac1a8
cmp esi, 0x10
je 0x4ac481
cmp esi, 0x11
je 0x4ac58c
cmp esi, 0x1f
je 0x4ac16a
cmp esi, 0x30
je 0x4ac10c
cmp esi, 0x3b
jle 0x4ac969
cmp esi, 0x3d
jle 0x4ac31d
cmp esi, 0x3f
jne 0x4ac969
mov ecx, dword [edi + 0x10]
mov esi, dword [ecx + 0xc]
mov eax, dword [edi + 8]
mov edi, dword [esi]
lea ecx, [esp + 0x30]
push ecx
lea ecx, [esp + 0x28]
push ecx
lea ecx, [esp + 0x34]
push ecx
lea ecx, [esp + 0x44]
push ecx
push edx
mov ecx, edi
mov dword [esp + 0x28], eax
call fcn.004aa1d1
mov ecx, dword [ebp + 8]
add esp, 0x14
call fcn.004ad3b3
mov ecx, dword [ebp + 8]
mov dword [esp + 0x18], eax
call fcn.004ad3b3
mov ebx, 0x80
push ebx
push dword [esp + 0x1c]
mov dword [esp + 0x24], eax
push dword [esp + 0x2c]
mov eax, edi
push dword [esp + 0x44]
mov edi, dword [ebp + 8]
push 0x48
push dword [esp + 0x28]
call fcn.004aa227
mov edx, dword [esp + 0x48]
mov esi, dword [esi + 0xc]
mov eax, edi
call fcn.004ad410
push esi
push eax
lea edi, [esp + 0x50]
call fcn.004ac989
mov edi, dword [ebp + 8]
push ebx
push dword [esp + 0x40]
push eax
push dword [esp + 0x64]
mov eax, esi
push 0x46
push dword [esp + 0x48]
call fcn.004aa227
push dword [ebp + 0x10]
mov eax, dword [esp + 0x4c]
push dword [esp + 0x58]
push dword [esp + 0x58]
push 0x3d
call fcn.004a39a6
mov edx, dword [esp + 0x60]
add esp, 0x48
mov eax, edi
call fcn.004ad410
mov edx, dword [esp + 0x1c]
call fcn.004ad410
jmp 0x4ac969
cmp dword [edx + 0x188], ebx
jne 0x4ac126
push str.RAISE___may_only_be_used_within_a_trigger_program
mov esi, edx
call fcn.00497d9d
pop ecx
jmp 0x4abfc9
cmp dword [edi + 0x28], 4
je 0x4ac14b
mov eax, edx
push dword [eax]
mov esi, edi
call fcn.004aa600
mov eax, dword [edi + 0x18]
pop ecx
shr eax, 1
push eax
push ebx
push dword [edi + 0x28]
push 0x13
push 0x26
jmp 0x4ac4d8
push ebx
push ebx
push ebx
push 0x66
call fcn.004a39a6
mov eax, dword [ebp + 8]
mov eax, dword [eax + 0x188]
push ebx
push dword [eax + 0x18]
push ebx
push 0x5b
jmp 0x4ac344
push ecx
push dword [edi + 8]
push edx
call fcn.004abf9b
mov esi, eax
add esp, 0xc
push esi
lea ecx, [edi + 0x14]
mov dword [esp + 0x2c], esi
call fcn.004afb4b
movsx eax, al
add eax, 0x29
push eax
mov eax, dword [esp + 0x18]
call fcn.004a3a28
mov eax, dword [ebp + 8]
pop ecx
pop ecx
xor ecx, ecx
inc ecx
call fcn.004abeaa
jmp 0x4ac969
push ebx
push edi
mov eax, edx
call fcn.004ab745
mov dword [esp + 0x1c], eax
mov eax, edi
call fcn.004aa161
push ebx
push dword [ebp + 0x10]
mov byte [esp + 0x4f], al
mov eax, dword [esp + 0x20]
push 1
push 0x2f
call fcn.004a39a6
push dword [edi + 8]
lea edi, [esp + 0x48]
push dword [ebp + 8]
call fcn.004ac989
mov edi, dword [esp + 0x30]
mov esi, eax
push esi
push 0x42
mov eax, edi
call fcn.004a3a28
push ebx
push dword [ebp + 0x10]
mov dword [esp + 0x50], eax
push ebx
push 0x71
mov eax, edi
call fcn.004a39a6
push 0x5b
push edi
call fcn.004a3a10
mov edx, dword [edi + 0xc]
mov dword [esp + 0x74], eax
mov eax, dword [esp + 0x60]
add esp, 0x40
mov ecx, edi
call fcn.004a3cb1
cmp dword [esp + 0x14], 1
jne 0x4ac274
push esi
push 0x25
mov eax, edi
call fcn.004a3a28
push esi
mov dword [esp + 0x2c], eax
mov eax, dword [ebp + 0xc]
push ebx
push dword [eax + 0x24]
mov eax, edi
push 0x2d
call fcn.004a39a6
push 0x5b
push edi
mov dword [esp + 0x34], eax
call fcn.004a3a10
mov edx, dword [edi + 0xc]
mov esi, eax
mov eax, dword [esp + 0x40]
add esp, 0x20
mov ecx, edi
call fcn.004a3cb1
mov edx, dword [edi + 0xc]
mov eax, dword [esp + 0x14]
mov ecx, edi
call fcn.004a3cb1
jmp 0x4ac2b9
mov ecx, dword [ebp + 8]
call fcn.004ad3b3
push 1
push eax
push 1
push esi
push 0x55
push edi
lea ebx, [esp + 0x57]
mov dword [esp + 0x48], eax
call fcn.004a3a56
mov eax, dword [ebp + 8]
xor ecx, ecx
inc ecx
call fcn.004abeaa
push dword [esp + 0x48]
mov eax, dword [ebp + 0xc]
push 0
push dword [eax + 0x24]
mov eax, edi
push 0x7a
call fcn.004a39a6
add esp, 0x28
mov esi, eax
xor ebx, ebx
push ebx
push 0xffffffffffffffff
push dword [ebp + 0x10]
mov eax, edi
push 0x29
call fcn.004a39a6
mov edx, dword [edi + 0xc]
mov eax, dword [esp + 0x44]
add esp, 0x10
mov ecx, edi
call fcn.004a3cb1
mov edx, dword [edi + 0xc]
mov eax, esi
mov ecx, edi
jmp 0x4ac3de
cmp esi, 0x55
jg 0x4ac473
je 0x4ac3e8
cmp esi, 0x41
jl 0x4ac969
cmp esi, 0x42
jle 0x4ac39c
cmp esi, 0x48
jle 0x4ac355
cmp esi, 0x49
jle 0x4ac969
cmp esi, 0x53
jg 0x4ac969
push dword [edi + 8]
lea edi, [esp + 0x30]
push edx
call fcn.004ac989
mov ebx, eax
mov eax, dword [ebp + 0xc]
push dword [eax + 0xc]
lea edi, [esp + 0x3c]
push dword [ebp + 8]
call fcn.004ac989
push dword [ebp + 0x10]
push ebx
push eax
push esi
mov eax, dword [esp + 0x30]
call fcn.004a39a6
add esp, 0x20
jmp 0x4ac969
mov ecx, dword [edi + 0xc]
lea eax, [esp + 0x30]
push eax
lea eax, [esp + 0x28]
push eax
lea eax, [esp + 0x34]
push eax
lea eax, [esp + 0x44]
push eax
mov eax, dword [edi + 8]
push edx
call fcn.004aa1d1
mov eax, dword [edi + 0xc]
add esp, 0x14
push 0x80
push dword [ebp + 0x10]
push dword [esp + 0x2c]
push dword [esp + 0x44]
push esi
push dword [edi + 8]
mov edi, dword [ebp + 8]
call fcn.004aa227
jmp 0x4ac4e4
push ebx
push ecx
push 1
push 0x2f
call fcn.004a39a6
push dword [edi + 8]
lea edi, [esp + 0x40]
push dword [ebp + 8]
call fcn.004ac989
push eax
push esi
mov esi, dword [esp + 0x30]
mov eax, esi
call fcn.004a3a28
push ebx
push 0xffffffffffffffff
push dword [ebp + 0x10]
mov edi, eax
push 0x29
mov eax, esi
call fcn.004a39a6
mov edx, dword [esi + 0xc]
add esp, 0x30
mov eax, edi
mov ecx, esi
call fcn.004a3cb1
jmp 0x4ac969
mov eax, dword [edi + 8]
mov cl, byte [eax]
cmp cl, 0x7d
je 0x4ac43c
cmp cl, 0x7c
je 0x4ac437
mov ecx, edx
call fcn.004ad3b3
push ebx
push eax
mov dword [esp + 0x34], eax
mov eax, dword [esp + 0x18]
push ebx
push 0x2f
call fcn.004a39a6
push dword [edi + 8]
lea edi, [esp + 0x44]
push dword [ebp + 8]
call fcn.004ac989
push dword [ebp + 0x10]
push dword [esp + 0x48]
push eax
mov eax, dword [esp + 0x34]
push 0x4f
call fcn.004a39a6
add esp, 0x28
jmp 0x4ac46b
cmp cl, 0x7d
jne 0x4ac457
mov eax, dword [eax + 0x14]
cmp eax, ebx
je 0x4ac46b
push dword [ebp + 0x10]
push 1
push eax
push dword [esp + 0x1c]
call fcn.004abc53
add esp, 0x10
jmp 0x4ac46b
push dword [ebp + 0x10]
mov esi, dword [eax + 0x14]
push dword [esp + 0x14]
xor edi, edi
inc edi
call fcn.004abcc5
pop ecx
pop ecx
mov eax, dword [ebp + 0x10]
jmp 0x4ac62c
mov eax, esi
sub eax, 0x56
je 0x4ac4ad
dec eax
jne 0x4ac969
push ecx
push dword [edi + 8]
mov ebx, edx
push ebx
call fcn.004abf9b
add esp, 0xc
push dword [ebp + 0x10]
call fcn.004abf2f
pop ecx
push eax
mov dword [esp + 0x2c], eax
mov eax, dword [esp + 0x14]
push esi
call fcn.004a3a28
jmp 0x4ac585
push ecx
push dword [edi + 8]
push edx
call fcn.004abf9b
add esp, 0xc
jmp 0x4ac62c
mov eax, edx
push dword [eax]
mov esi, edi
call fcn.004aa600
mov eax, dword [edi + 0x18]
pop ecx
shr eax, 1
push eax
push ebx
push dword [ebp + 0x10]
push ebx
push 0x58
mov ebx, dword [edi + 0x14]
push dword [esp + 0x24]
call fcn.004a3a56
add esp, 0x18
jmp 0x4ac969
mov eax, 0x80
cmp esi, eax
jg 0x4ac5de
je 0x4ac5ac
sub esi, 0x5c
je 0x4ac5a2
sub esi, 0x12
je 0x4ac58c
sub esi, 0xe
je 0x4ac573
dec esi
je 0x4ac557
dec esi
je 0x4ac527
dec esi
jne 0x4ac969
mov eax, dword [edi + 0x24]
jmp 0x4ac62c
mov esi, dword [edi + 0x18]
mov edi, dword [edi + 0x14]
mov eax, dword [esp + 0x10]
mov ecx, dword [eax]
shr esi, 1
sub esi, 3
inc edi
inc edi
push esi
call fcn.00498687
pop ecx
mov ecx, eax
push 0xffffffffffffffff
mov eax, esi
push ebx
push dword [ebp + 0x10]
cdq
sub eax, edx
sar eax, 1
push eax
push 0x73
mov ebx, ecx
jmp 0x4ac4db
mov edi, dword [edi + 0x14]
cmp edi, ebx
je 0x4ac969
push ecx
push ebx
push edi
push dword [esp + 0x1c]
call fcn.004abc53
jmp 0x4ac64e
mov eax, dword [ebp + 0xc]
mov esi, dword [eax + 0x14]
push ecx
push dword [esp + 0x14]
xor edi, edi
call fcn.004abcc5
pop ecx
pop ecx
jmp 0x4ac969
cmp dword [edi + 0x28], ebx
jne 0x4ac59a
push edi
push edx
call fcn.004ab97d
pop ecx
pop ecx
mov eax, dword [edi + 0x28]
jmp 0x4ac62c
push ebx
push ecx
push ebx
push 0x71
jmp 0x4ac645
mov eax, dword [esp + 0x10]
push ecx
push dword [edi + 0x24]
push 0x1a
call fcn.004a3a3f
mov eax, dword [edi + 0x18]
shr eax, 1
add esp, 0xc
cmp eax, 1
jbe 0x4ac969
mov ebx, dword [edi + 0x14]
push eax
push dword [esp + 0x14]
or eax, 0xffffffff
call fcn.004a3d93
jmp 0x4ac585
sub esi, 0x81
je 0x4ac835
sub esi, 0x13
je 0x4ac603
dec esi
je 0x4ac681
dec esi
je 0x4ac656
dec esi
je 0x4ac619
dec esi
jne 0x4ac969
mov eax, dword [edi + 0x10]
mov dword [esp + 0x34], eax
cmp eax, ebx
je 0x4ac6b4
mov esi, dword [eax]
jmp 0x4ac6b6
mov eax, dword [edi + 0x30]
mov ecx, dword [edi + 0x2c]
imul eax, eax, 0x18
add eax, dword [ecx + 0x10]
cmp byte [ecx], bl
jne 0x4ac635
mov eax, dword [eax + 0x10]
mov dword [esp + 0x28], eax
jmp 0x4ac969
cmp byte [ecx + 1], bl
je 0x4ac681
push dword [ebp + 0x10]
push dword [eax + 0xc]
push dword [ecx + 4]
push 3
mov eax, dword [esp + 0x20]
call fcn.004a39a6
add esp, 0x10
jmp 0x4ac969
mov eax, dword [edi + 0x2c]
cmp eax, ebx
jne 0x4ac672
add edi, 0x1c
push edi
push str.misuse_of_aggregate:__T
mov esi, edx
call fcn.00497d9d
jmp 0x4ac585
mov ecx, dword [edi + 0x30]
mov eax, dword [eax + 0x20]
shl ecx, 4
mov eax, dword [ecx + eax + 8]
jmp 0x4ac62c
mov eax, dword [edi + 0x24]
cmp eax, ebx
jge 0x4ac690
mov eax, dword [edx + 0x50]
add eax, dword [edi + 0x28]
jmp 0x4ac62c
movzx ecx, word [edi + 2]
mov ebx, dword [edi + 0x3c]
and ecx, 0x200
push ecx
push dword [ebp + 0x10]
push eax
push dword [edi + 0x28]
mov edi, edx
call fcn.004abd69
add esp, 0x10
jmp 0x4ac62c
xor esi, esi
mov eax, edx
mov ecx, dword [eax]
mov eax, dword [ecx + 8]
mov eax, dword [eax + 0x14]
mov al, byte [eax + 0x59]
mov edx, dword [edi + 0x14]
push ebx
mov byte [esp + 0x1c], al
push dword [esp + 0x1c]
mov eax, dword [edi + 0x18]
push esi
shr eax, 1
push edx
mov dword [esp + 0x24], ebx
mov dword [esp + 0x2c], ebx
push ecx
mov ebx, eax
mov dword [esp + 0x34], ecx
call fcn.004b2744
mov ebx, dword [esp + 0x48]
add esp, 0x14
mov dword [esp + 0x24], eax
test ebx, ebx
je 0x4ac71d
mov eax, dword [ebx]
mov esi, dword [ebp + 8]
push eax
mov dword [esp + 0x1c], eax
call fcn.004ad427
pop ecx
push 1
push eax
mov dword [esp + 0x40], eax
push esi
mov eax, ebx
call fcn.004acb16
add esp, 0xc
jmp 0x4ac727
and dword [esp + 0x38], 0
and dword [esp + 0x18], 0
mov eax, dword [esp + 0x18]
cmp eax, 2
jl 0x4ac73f
test byte [edi + 2], 0x80
je 0x4ac73f
mov ecx, dword [ebx + 0xc]
push eax
mov eax, dword [ecx + 0xc]
jmp 0x4ac749
test eax, eax
jle 0x4ac75d
mov ecx, dword [ebx + 0xc]
push eax
mov eax, dword [ecx]
push dword [esp + 0x28]
push dword [esp + 0x28]
call fcn.004bfa8e
mov dword [esp + 0x30], eax
add esp, 0xc
xor edi, edi
xor esi, esi
cmp dword [esp + 0x18], edi
jle 0x4ac7b7
cmp edi, 0x180
jge 0x4ac7b7
mov eax, dword [ebx + 0xc]
push dword [edi + eax]
call fcn.004aad62
pop ecx
test eax, eax
je 0x4ac78a
xor eax, eax
inc eax
mov ecx, esi
shl eax, cl
or dword [esp + 0x14], eax
mov eax, dword [esp + 0x24]
cmp byte [eax + 3], 0
je 0x4ac7ad
cmp dword [esp + 0x1c], 0
jne 0x4ac7ad
mov eax, dword [ebx + 0xc]
mov eax, dword [edi + eax]
mov ecx, dword [ebp + 8]
call fcn.004aa0e0
mov dword [esp + 0x1c], eax
inc esi
add edi, 0xc
cmp esi, dword [esp + 0x18]
jl 0x4ac767
mov eax, dword [esp + 0x24]
cmp byte [eax + 3], 0
je 0x4ac7ed
cmp dword [esp + 0x1c], 0
jne 0x4ac7d4
mov eax, dword [ebp + 8]
mov eax, dword [eax]
mov eax, dword [eax + 0x2c]
mov dword [esp + 0x1c], eax
mov ebx, dword [esp + 0x1c]
push 0xfffffffffffffffc
xor eax, eax
push eax
push eax
push eax
push 0xc
push dword [esp + 0x24]
call fcn.004a3a56
add esp, 0x18
mov esi, dword [esp + 0x38]
mov ebx, dword [esp + 0x24]
push 0xfffffffffffffffb
push dword [ebp + 0x10]
push esi
push dword [esp + 0x20]
push 0x15
push dword [esp + 0x24]
call fcn.004a3a56
mov ebx, dword [esp + 0x30]
mov ecx, dword [esp + 0x28]
add esp, 0x18
mov dl, bl
call fcn.004a3ccd
mov eax, dword [ebp + 8]
test ebx, ebx
je 0x4ac82e
cmp ebx, dword [eax + 0x38]
jle 0x4ac82e
mov dword [eax + 0x38], ebx
mov dword [eax + 0x3c], esi
mov ecx, ebx
jmp 0x4ac19e
mov eax, dword [edi + 0x10]
mov ecx, dword [eax + 0xc]
mov eax, dword [eax]
mov dword [esp + 0x20], eax
mov eax, dword [esp + 0x10]
mov dword [esp + 0x1c], ecx
call fcn.004a3a85
mov dword [esp + 0x18], eax
mov eax, dword [edi + 8]
mov dword [esp + 0x14], eax
cmp eax, ebx
je 0x4ac8a5
push 0x11
pop ecx
mov esi, eax
push eax
push dword [ebp + 8]
lea edi, [esp + 0x48]
rep movsd dword es:[edi], dword [esi]
lea edi, [esp + 0x34]
call fcn.004ac989
mov edi, dword [ebp + 0xc]
mov dword [esp + 0x6c], eax
lea eax, [esp + 0x48]
mov dword [esp + 0x98], eax
pop ecx
lea eax, [esp + 0x8c]
pop ecx
mov byte [esp + 0x40], 0x7f
mov dword [esp + 0x68], ebx
mov byte [esp + 0x88], 0x44
mov dword [esp + 0x34], eax
mov esi, dword [ebp + 8]
inc dword [esi + 0x54]
cmp dword [esp + 0x20], ebx
jle 0x4ac930
mov eax, dword [esp + 0x20]
mov esi, dword [esp + 0x1c]
dec eax
shr eax, 1
inc eax
mov dword [esp + 0x20], eax
mov eax, dword [esi]
cmp dword [esp + 0x14], ebx
je 0x4ac8d2
mov dword [esp + 0x94], eax
jmp 0x4ac8d6
mov dword [esp + 0x34], eax
mov eax, dword [esp + 0x10]
call fcn.004a3a85
push 8
push eax
push dword [esp + 0x3c]
mov dword [esp + 0x28], eax
push dword [ebp + 8]
call fcn.004acda3
push dword [ebp + 0x10]
push dword [esi + 0xc]
push dword [ebp + 8]
call fcn.004ac9c4
mov eax, dword [esp + 0x2c]
add esp, 0x1c
push ebx
push dword [esp + 0x1c]
push ebx
push 0x5b
call fcn.004a39a6
mov edx, dword [esp + 0x2c]
mov ecx, dword [esp + 0x20]
add esp, 0x10
call fcn.004a3ac7
add esi, 0x18
dec dword [esp + 0x20]
jne 0x4ac8c1
mov esi, dword [ebp + 8]
mov edi, dword [edi + 0xc]
cmp edi, ebx
je 0x4ac946
push dword [ebp + 0x10]
push edi
push esi
call fcn.004ac9c4
add esp, 0xc
jmp 0x4ac959
mov eax, dword [esp + 0x10]
push ebx
push dword [ebp + 0x10]
push ebx
push 0x71
call fcn.004a39a6
add esp, 0x10
mov edx, dword [esp + 0x18]
mov ecx, dword [esp + 0x10]
call fcn.004a3ac7
dec dword [esi + 0x54]
mov edx, dword [esp + 0x2c]
mov eax, dword [ebp + 8]
call fcn.004ad410
mov edx, dword [esp + 0x30]
call fcn.004ad410
mov eax, dword [esp + 0x28]
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret