Function at 0x4a4b70
Capabilities:
Parse credit card information

Disassembly:
push ebp
mov ebp, esp
add esp, 0xffffff50
xor eax, eax
xor edx, edx
push ebx
push esi
push edi
mov dword [ebp - 0x20], eax
mov dword [ebp - 0x24], edx
mov ecx, dword [ebp + 0x10]
mov eax, dword [ebp + 0x14]
mov esi, dword [ecx]
mov edx, dword [eax]
mov dword [ebp - 0x2c], edx
xor ecx, ecx
mov dword [ebp - 0x34], ecx
test byte [ebp + 9], 2
setne al
and eax, 1
or ecx, 0xffffffff
mov dword [ebp - 0x14], eax
mov edx, dword [ebp - 0x14]
xor edx, 1
mov dword [ebp - 0x18], edx
mov dword [ebp - 0x1c], ecx
mov eax, dword [ebp + 0x20]
mov dword [eax], ecx
xor eax, eax
mov edx, dword [ebp + 0x24]
mov dword [edx], eax
xor ebx, ebx
mov edx, dword [ebp - 0x2c]
test byte [ebp + 8], 8
mov bl, byte [edx]
je 0x4a4bfe
mov eax, dword [ebp + 0x28]
mov edx, dword [eax + 0xc]
test byte [edx + ebx], 1
jne 0x4a5b8b
cmp ebx, 0x23
jne 0x4a4bfe
inc dword [ebp - 0x2c]
mov ecx, dword [ebp - 0x2c]
xor ebx, ebx
mov bl, byte [ecx]
test ebx, ebx
je 0x4a5b8b
cmp ebx, 0xa
jne 0x4a4be2
jmp 0x4a5b8b
mov eax, ebx
cmp eax, 0x2e
jg 0x4a4c3f
je 0x4a4ca4
cmp eax, 0x29
jg 0x4a4c2a
je 0x4a4c71
sub eax, 1
jb 0x4a4c71
sub eax, 0x23
je 0x4a4c96
sub eax, 4
je 0x4a5664
jmp 0x4a5abb
sub eax, 0x2a
je 0x4a5195
dec eax
je 0x4a51a3
jmp 0x4a5abb
cmp eax, 0x5e
jg 0x4a4c60
je 0x4a4c88
sub eax, 0x3f
je 0x4a51b3
sub eax, 0x1c
je 0x4a4cb0
dec eax
je 0x4a5a42
jmp 0x4a5abb
sub eax, 0x7b
je 0x4a514e
dec eax
je 0x4a4c71
jmp 0x4a5abb
mov edx, dword [ebp + 0x10]
mov dword [edx], esi
mov ecx, dword [ebp + 0x14]
mov eax, dword [ebp - 0x2c]
mov dword [ecx], eax
mov eax, 1
jmp 0x4a5b9d
xor edx, edx
mov dword [ebp - 0x34], edx
mov byte [esi], 0xd
inc esi
jmp 0x4a5b8b
xor ecx, ecx
mov dword [ebp - 0x34], ecx
mov byte [esi], 0xe
inc esi
jmp 0x4a5b8b
mov dword [ebp - 0x34], esi
mov byte [esi], 0xf
inc esi
jmp 0x4a5b8b
mov dword [ebp - 0x34], esi
mov byte [esi], 0x35
inc esi
inc dword [ebp - 0x2c]
mov eax, dword [ebp - 0x2c]
xor ebx, ebx
mov bl, byte [eax]
cmp ebx, 0x5e
jne 0x4a4cd9
mov dword [ebp - 0x38], 1
inc dword [ebp - 0x2c]
mov eax, dword [ebp - 0x2c]
xor ebx, ebx
mov bl, byte [eax]
jmp 0x4a4cde
xor eax, eax
mov dword [ebp - 0x38], eax
xor edx, edx
lea ecx, [ebp - 0xb0]
mov dword [ebp - 0x3c], edx
mov dword [ebp - 0x40], 0xffffffff
push 0x20
push 0
push ecx
call fcn.004a33c0
add esp, 0xc
test ebx, ebx
jne 0x4a4d0f
mov eax, dword [ebp + 0x18]
mov dword [eax], 0x4cd553
jmp 0x4a5b93
cmp ebx, 0x5b
jne 0x4a4e4b
mov edx, dword [ebp - 0x2c]
cmp byte [edx + 1], 0x3a
je 0x4a4d37
mov ecx, dword [ebp - 0x2c]
cmp byte [ecx + 1], 0x2e
je 0x4a4d37
mov eax, dword [ebp - 0x2c]
cmp byte [eax + 1], 0x3d
jne 0x4a4e4b
mov edx, dword [ebp + 0x28]
lea ecx, [ebp - 0x30]
push edx
push ecx
mov eax, dword [ebp - 0x2c]
push eax
call fcn.004a4ad4
add esp, 0xc
test eax, eax
je 0x4a4e4b
xor edx, edx
mov dword [ebp - 0x50], edx
mov ecx, dword [ebp + 0x28]
mov eax, dword [ecx + 8]
mov dword [ebp - 0x5c], eax
mov edx, dword [ebp - 0x2c]
cmp byte [edx + 1], 0x3a
je 0x4a4d78
mov ecx, dword [ebp + 0x18]
mov dword [ecx], 0x4cd57d
jmp 0x4a5b93
add dword [ebp - 0x2c], 2
mov eax, dword [ebp - 0x2c]
cmp byte [eax], 0x5e
jne 0x4a4d8e
mov dword [ebp - 0x50], 1
inc dword [ebp - 0x2c]
mov edx, dword [ebp - 0x30]
sub edx, dword [ebp - 0x2c]
push edx
mov ecx, dword [ebp - 0x2c]
push ecx
call fcn.004a4b1c
add esp, 8
mov dword [ebp - 0x54], eax
cmp dword [ebp - 0x54], 0
jge 0x4a4db8
mov eax, dword [ebp + 0x18]
mov dword [eax], 0x4cd5a8
jmp 0x4a5b93
test byte [ebp + 8], 1
je 0x4a4dc9
cmp dword [ebp - 0x54], 2
jg 0x4a4dc9
xor edx, edx
mov dword [ebp - 0x54], edx
mov ecx, dword [ebp - 0x54]
xor eax, eax
lea ecx, [ecx + ecx*2]
mov dword [ebp - 0x54], ecx
mov dword [ebp - 0x58], eax
mov edx, dword [ebp - 0x54]
add edx, dword [ebp - 0x58]
mov ecx, dword [edx*4 + 0x4ccf88]
mov dword [ebp - 0x60], ecx
cmp dword [ebp - 0x60], 0
jl 0x4a4e38
cmp dword [ebp - 0x50], 0
je 0x4a4e13
xor ebx, ebx
lea edx, [ebp - 0xb0]
mov eax, dword [ebp - 0x5c]
mov ecx, dword [ebp - 0x60]
add eax, ecx
mov cl, byte [eax]
not cl
or byte [edx], cl
inc ebx
inc edx
inc eax
cmp ebx, 0x20
jl 0x4a4e03
jmp 0x4a4e2f
xor ebx, ebx
lea eax, [ebp - 0xb0]
mov edx, dword [ebp - 0x5c]
mov ecx, dword [ebp - 0x60]
add edx, ecx
mov cl, byte [edx]
or byte [eax], cl
inc ebx
inc eax
inc edx
cmp ebx, 0x20
jl 0x4a4e23
inc dword [ebp - 0x58]
cmp dword [ebp - 0x58], 3
jl 0x4a4dd7
mov eax, dword [ebp - 0x30]
inc eax
mov dword [ebp - 0x2c], eax
mov dword [ebp - 0x3c], 0xa
jmp 0x4a50d6
cmp ebx, 0x5c
jne 0x4a4f9b
mov eax, dword [ebp + 0x28]
push eax
push 1
mov edx, dword [ebp + 8]
push edx
mov ecx, dword [ebp + 0xc]
mov eax, dword [ecx]
push eax
mov edx, dword [ebp + 0x18]
push edx
lea ecx, [ebp - 0x2c]
push ecx
call fcn.004a4648
add esp, 0x18
mov ebx, eax
mov eax, ebx
neg eax
cmp eax, 3
jne 0x4a4e89
mov ebx, 8
jmp 0x4a4f9b
test ebx, ebx
jge 0x4a4f9b
mov eax, dword [ebp + 0x28]
neg ebx
mov edx, dword [eax + 8]
add ebx, 0xfffffffc
mov dword [ebp - 0x64], edx
cmp ebx, 5
mov dword [ebp - 0x3c], 0xa
ja case.default.0x4a4eaf
jmp dword [ebx*4 + 0x4a4eb6]
xor ebx, ebx
mov eax, dword [ebp - 0x64]
add eax, 0x40
lea edx, [ebp - 0xb0]
mov cl, byte [eax]
or byte [edx], cl
inc ebx
inc edx
inc eax
cmp ebx, 0x20
jl 0x4a4edc
jmp 0x4a50d6
xor ebx, ebx
mov edx, dword [ebp - 0x64]
add edx, 0x40
lea eax, [ebp - 0xb0]
mov cl, byte [edx]
not cl
or byte [eax], cl
inc ebx
inc eax
inc edx
cmp ebx, 0x20
jl 0x4a4efb
jmp 0x4a50d6
xor ebx, ebx
mov eax, dword [ebp - 0x64]
add eax, 0xa0
lea edx, [ebp - 0xb0]
mov cl, byte [eax]
or byte [edx], cl
inc ebx
inc edx
inc eax
cmp ebx, 0x20
jl 0x4a4f1e
jmp 0x4a50d6
xor ebx, ebx
mov edx, dword [ebp - 0x64]
add edx, 0xa0
lea eax, [ebp - 0xb0]
mov cl, byte [edx]
not cl
or byte [eax], cl
inc ebx
inc eax
inc edx
cmp ebx, 0x20
jl 0x4a4f40
jmp 0x4a50d6
xor ebx, ebx
lea edx, [ebp - 0xb0]
mov eax, dword [ebp - 0x64]
mov cl, byte [eax]
or byte [edx], cl
inc ebx
inc edx
inc eax
cmp ebx, 0x20
jl 0x4a4f5e
jmp 0x4a50d6
xor ebx, ebx
lea eax, [ebp - 0xb0]
mov edx, dword [ebp - 0x64]
mov cl, byte [edx]
not cl
or byte [eax], cl
inc ebx
inc eax
inc edx
cmp ebx, 0x20
jl 0x4a4f7a
jmp 0x4a50d6
mov eax, dword [ebp + 0x18]
mov dword [eax], 0x4cd5c1
jmp 0x4a5b93
mov eax, dword [ebp - 0x2c]
cmp byte [eax + 1], 0x2d
jne 0x4a5085
mov edx, dword [ebp - 0x2c]
cmp byte [edx + 2], 0x5d
je 0x4a5085
add dword [ebp - 0x2c], 2
mov ecx, dword [ebp - 0x2c]
xor eax, eax
mov al, byte [ecx]
test eax, eax
jne 0x4a4fd2
mov edx, dword [ebp + 0x18]
mov dword [edx], 0x4cd5ec
jmp 0x4a5b93
cmp eax, 0x5c
jne 0x4a5018
mov ecx, dword [ebp - 0x2c]
mov dword [ebp - 0x68], ecx
mov eax, dword [ebp + 0x28]
push eax
push 1
mov edx, dword [ebp + 8]
push edx
mov ecx, dword [ebp + 0xc]
mov eax, dword [ecx]
push eax
mov edx, dword [ebp + 0x18]
push edx
lea ecx, [ebp - 0x2c]
push ecx
call fcn.004a4648
add esp, 0x18
test eax, eax
jge 0x4a5018
cmp eax, 0xfffffffd
jne 0x4a500d
mov eax, 8
jmp 0x4a5018
mov edx, dword [ebp - 0x68]
add edx, 0xfffffffe
mov dword [ebp - 0x2c], edx
jmp 0x4a5085
cmp ebx, eax
jle 0x4a502a
mov ecx, dword [ebp + 0x18]
mov dword [ecx], 0x4cd616
jmp 0x4a5b93
cmp eax, ebx
jl 0x4a50d6
mov ecx, ebx
and ecx, 7
mov dl, 1
shl dl, cl
mov ecx, ebx
test ecx, ecx
jns 0x4a5044
add ecx, 7
sar ecx, 3
or byte [ebp + ecx - 0xb0], dl
test byte [ebp + 8], 1
je 0x4a5078
mov edx, dword [ebp + 0x28]
mov edx, dword [edx + 4]
movzx edi, byte [edx + ebx]
mov ecx, edi
and ecx, 7
mov dl, 1
shl dl, cl
test edi, edi
jns 0x4a506e
add edi, 7
sar edi, 3
or byte [ebp + edi - 0xb0], dl
inc dword [ebp - 0x3c]
mov dword [ebp - 0x40], ebx
inc ebx
cmp eax, ebx
jge 0x4a5032
jmp 0x4a50d6
mov ecx, ebx
mov al, 1
and ecx, 7
mov edx, ebx
shl al, cl
test edx, edx
jns 0x4a5097
add edx, 7
sar edx, 3
or byte [ebp + edx - 0xb0], al
test byte [ebp + 8], 1
je 0x4a50d0
mov eax, dword [ebp + 0x28]
xor ecx, ecx
mov edx, dword [eax + 4]
mov al, 1
mov cl, byte [edx + ebx]
mov ebx, ecx
mov ecx, ebx
mov edx, ebx
and ecx, 7
shl al, cl
test edx, edx
jns 0x4a50c6
add edx, 7
sar edx, 3
or byte [ebp + edx - 0xb0], al
inc dword [ebp - 0x3c]
mov dword [ebp - 0x40], ebx
inc dword [ebp - 0x2c]
mov eax, dword [ebp - 0x2c]
xor ebx, ebx
mov bl, byte [eax]
cmp ebx, 0x5d
jne 0x4a4cfd
cmp dword [ebp - 0x3c], 1
jne 0x4a5114
cmp dword [ebp - 0x40], 0
jl 0x4a5114
cmp dword [ebp - 0x38], 0
je 0x4a5101
mov byte [esi - 1], 0x11
jmp 0x4a5109
mov byte [esi - 1], 0x10
mov byte [esi], 1
inc esi
mov al, byte [ebp - 0x40]
mov byte [esi], al
inc esi
jmp 0x4a5b8b
cmp dword [ebp - 0x38], 0
je 0x4a5134
xor ebx, ebx
mov edx, esi
lea eax, [ebp - 0xb0]
mov cl, byte [eax]
not cl
mov byte [edx], cl
inc ebx
inc edx
inc eax
cmp ebx, 0x20
jl 0x4a5124
jmp 0x4a5146
push 0x20
lea eax, [ebp - 0xb0]
push eax
push esi
call fcn.004a33dc
add esp, 0xc
add esi, 0x20
jmp 0x4a5b8b
mov edx, dword [ebp + 0x28]
push edx
mov ecx, dword [ebp - 0x2c]
inc ecx
push ecx
call fcn.004a47e0
add esp, 8
test eax, eax
je 0x4a5abb
mov eax, dword [ebp + 0x28]
lea ecx, [ebp - 0x10]
push eax
lea eax, [ebp - 0xc]
mov edx, dword [ebp + 0x18]
push edx
push ecx
push eax
mov edx, dword [ebp - 0x2c]
inc edx
push edx
call fcn.004a4868
add esp, 0x14
mov dword [ebp - 0x2c], eax
mov ecx, dword [ebp + 0x18]
cmp dword [ecx], 0
jne 0x4a5b93
jmp 0x4a51bf
xor eax, eax
mov dword [ebp - 0xc], eax
mov dword [ebp - 0x10], 0xffffffff
jmp 0x4a51bf
mov dword [ebp - 0xc], 1
mov dword [ebp - 0x10], 0xffffffff
jmp 0x4a51bf
xor edx, edx
mov dword [ebp - 0xc], edx
mov dword [ebp - 0x10], 1
cmp dword [ebp - 0x34], 0
jne 0x4a51d3
mov ecx, dword [ebp + 0x18]
mov dword [ecx], 0x4cd63c
jmp 0x4a5b93
mov eax, dword [ebp - 0x2c]
cmp byte [eax + 1], 0x3f
jne 0x4a51e7
mov edx, dword [ebp - 0x18]
mov dword [ebp - 4], edx
inc dword [ebp - 0x2c]
jmp 0x4a51ed
mov ecx, dword [ebp - 0x14]
mov dword [ebp - 4], ecx
mov eax, dword [ebp - 0x34]
cmp byte [eax], 0x10
jne 0x4a5249
mov edx, dword [ebp - 0x34]
xor ecx, ecx
mov cl, byte [edx + 1]
mov dword [ebp - 0x6c], ecx
cmp dword [ebp - 0xc], 0
jne 0x4a520e
mov eax, dword [ebp + 0x20]
mov edx, dword [ebp - 0x1c]
mov dword [eax], edx
mov eax, dword [ebp + 0x24]
mov ecx, dword [ebp - 0xc]
dec ecx
add dword [eax], ecx
cmp dword [ebp - 0x6c], 1
jne 0x4a522a
mov edx, dword [ebp - 0x34]
xor ebx, ebx
mov bl, byte [edx + 2]
mov esi, dword [ebp - 0x34]
jmp 0x4a523d
mov eax, dword [ebp - 0x34]
mov edx, dword [ebp - 0x6c]
xor ebx, ebx
mov bl, byte [eax + edx + 1]
mov eax, dword [ebp - 0x34]
dec byte [eax + 1]
dec esi
xor edx, edx
mov dword [ebp - 8], edx
jmp 0x4a5292
mov ecx, dword [ebp - 0x34]
xor eax, eax
mov al, byte [ecx]
cmp eax, 0x11
jne 0x4a5269
mov dword [ebp - 8], 9
mov edx, dword [ebp - 0x34]
xor ebx, ebx
mov bl, byte [edx + 1]
mov esi, dword [ebp - 0x34]
jmp 0x4a5292
mov eax, dword [ebp - 0x34]
xor edx, edx
mov dl, byte [eax]
cmp edx, 0xa
jl 0x4a5281
mov ecx, dword [ebp - 0x34]
cmp byte [ecx], 0xf
jne 0x4a5394
mov dword [ebp - 8], 0x12
mov eax, dword [ebp - 0x34]
xor ebx, ebx
mov bl, byte [eax]
mov esi, dword [ebp - 0x34]
cmp dword [ebp - 0x10], 0
je 0x4a565a
mov eax, dword [ebp - 8]
add dword [ebp - 4], eax
cmp dword [ebp - 0xc], 0
jne 0x4a52ef
cmp dword [ebp - 0x10], 0xffffffff
jne 0x4a52bc
mov dl, byte [ebp - 4]
add dl, 0x12
mov byte [esi], dl
inc esi
jmp 0x4a538c
cmp dword [ebp - 0x10], 1
jne 0x4a52d0
mov cl, byte [ebp - 4]
add cl, 0x16
mov byte [esi], cl
inc esi
jmp 0x4a538c
mov al, byte [ebp - 4]
add al, 0x18
mov byte [esi], al
inc esi
mov edx, dword [ebp - 0x10]
sar edx, 8
mov byte [esi], dl
inc esi
mov cl, byte [ebp - 0x10]
and cl, 0xff
mov byte [esi], cl
inc esi
jmp 0x4a538c
cmp dword [ebp - 0xc], 1
jne 0x4a5308
cmp dword [ebp - 0x10], 0xffffffff
jne 0x4a5308
mov al, byte [ebp - 4]
add al, 0x14
mov byte [esi], al
inc esi
jmp 0x4a538c
cmp dword [ebp - 0xc], 1
je 0x4a532a
mov dl, byte [ebp - 8]
add dl, 0x1a
mov byte [esi], dl
inc esi
mov ecx, dword [ebp - 0xc]
sar ecx, 8
mov byte [esi], cl
inc esi
mov al, byte [ebp - 0xc]
and al, 0xff
mov byte [esi], al
inc esi
jmp 0x4a534d
mov edx, dword [ebp - 0x34]
cmp byte [edx], 0x10
jne 0x4a5344
cmp esi, dword [ebp - 0x34]
jne 0x4a533c
add esi, 2
jmp 0x4a534d
mov ecx, dword [ebp - 0x34]
inc byte [ecx + 1]
jmp 0x4a534d
mov eax, dword [ebp - 0x34]
cmp byte [eax], 0x11
jne 0x4a534d
inc esi
cmp dword [ebp - 0x10], 0
jge 0x4a5361
mov byte [esi], bl
inc esi
mov dl, byte [ebp - 4]
add dl, 0x12
mov byte [esi], dl
inc esi
jmp 0x4a538c
mov ecx, dword [ebp - 0x10]
cmp ecx, dword [ebp - 0xc]
je 0x4a538c
mov byte [esi], bl
inc esi
mov eax, dword [ebp - 0xc]
sub dword [ebp - 0x10], eax
mov dl, byte [ebp - 4]
add dl, 0x18
mov byte [esi], dl
inc esi
mov ecx, dword [ebp - 0x10]
sar ecx, 8
mov byte [esi], cl
inc esi
mov al, byte [ebp - 0x10]
and al, 0xff
mov byte [esi], al
inc esi
mov byte [esi], bl
inc esi
jmp 0x4a565a
mov edx, dword [ebp - 0x34]
cmp byte [edx], 0x35
je 0x4a53a8
mov ecx, dword [ebp - 0x34]
cmp byte [ecx], 0x36
jne 0x4a543f
cmp dword [ebp - 0x10], 0
jne 0x4a53b6
mov esi, dword [ebp - 0x34]
jmp 0x4a565a
cmp dword [ebp - 0xc], 0
jne 0x4a53cf
cmp dword [ebp - 0x10], 0xffffffff
jne 0x4a53cf
mov al, byte [ebp - 4]
add al, 0x2d
mov byte [esi], al
inc esi
jmp 0x4a565a
cmp dword [ebp - 0xc], 1
jne 0x4a53e9
cmp dword [ebp - 0x10], 0xffffffff
jne 0x4a53e9
mov dl, byte [ebp - 4]
add dl, 0x2f
mov byte [esi], dl
inc esi
jmp 0x4a565a
cmp dword [ebp - 0xc], 0
jne 0x4a5403
cmp dword [ebp - 0x10], 1
jne 0x4a5403
mov cl, byte [ebp - 4]
add cl, 0x31
mov byte [esi], cl
inc esi
jmp 0x4a565a
mov al, byte [ebp - 4]
add al, 0x33
mov byte [esi], al
inc esi
mov edx, dword [ebp - 0xc]
sar edx, 8
mov byte [esi], dl
inc esi
mov cl, byte [ebp - 0xc]
and cl, 0xff
mov byte [esi], cl
inc esi
cmp dword [ebp - 0x10], 0xffffffff
jne 0x4a5428
xor eax, eax
mov dword [ebp - 0x10], eax
mov edx, dword [ebp - 0x10]
sar edx, 8
mov byte [esi], dl
inc esi
mov cl, byte [ebp - 0x10]
and cl, 0xff
mov byte [esi], cl
inc esi
jmp 0x4a565a
mov eax, dword [ebp - 0x34]
xor edx, edx
mov dl, byte [eax]
cmp edx, 0x46
jge 0x4a5467
mov ecx, dword [ebp - 0x34]
xor eax, eax
mov al, byte [ecx]
cmp eax, 0x41
je 0x4a5467
mov edx, dword [ebp - 0x34]
xor ecx, ecx
mov cl, byte [edx]
cmp ecx, 0x42
jne 0x4a564c
xor eax, eax
mov dword [ebp - 0x70], eax
mov edx, esi
sub edx, dword [ebp - 0x34]
mov dword [ebp - 0x74], edx
xor ebx, ebx
cmp dword [ebp - 0x10], 0xffffffff
jne 0x4a54aa
mov eax, dword [ebp - 0x34]
mov dword [ebp - 0x78], eax
mov edx, dword [ebp - 0x78]
mov eax, dword [ebp - 0x78]
xor ecx, ecx
mov cl, byte [edx + 1]
xor edx, edx
shl ecx, 8
mov dl, byte [eax + 2]
add ecx, edx
add dword [ebp - 0x78], ecx
mov ecx, dword [ebp - 0x78]
cmp byte [ecx], 0x39
jne 0x4a5482
mov eax, esi
sub eax, dword [ebp - 0x78]
mov dword [ebp - 0x70], eax
cmp dword [ebp - 0xc], 0
jne 0x4a5568
cmp dword [ebp - 0x24], 0
jle 0x4a54ca
mov edx, dword [ebp + 0x20]
mov ecx, dword [ebp - 0x1c]
mov dword [edx], ecx
mov eax, dword [ebp + 0x24]
mov edx, dword [ebp - 0x24]
sub dword [eax], edx
cmp dword [ebp - 0x10], 0
jne 0x4a54d8
mov esi, dword [ebp - 0x34]
jmp 0x4a565a
cmp dword [ebp - 0x10], 1
jg 0x4a5503
mov eax, dword [ebp - 0x74]
push eax
mov edx, dword [ebp - 0x34]
push edx
mov ecx, dword [ebp - 0x34]
inc ecx
push ecx
call fcn.004a33f8
mov edx, dword [ebp - 0x34]
mov al, byte [ebp - 4]
add al, 0x44
add esp, 0xc
mov byte [edx], al
inc esi
inc dword [ebp - 0x34]
jmp 0x4a5563
mov ecx, dword [ebp - 0x74]
push ecx
mov eax, dword [ebp - 0x34]
push eax
mov edx, dword [ebp - 0x34]
add edx, 4
push edx
call fcn.004a33f8
mov eax, dword [ebp - 0x34]
mov cl, byte [ebp - 4]
add cl, 0x44
add esp, 0xc
mov byte [eax], cl
add esi, 4
inc dword [ebp - 0x34]
mov edx, dword [ebp - 0x34]
mov byte [edx], 0x46
inc dword [ebp - 0x34]
test ebx, ebx
jne 0x4a553c
xor ecx, ecx
jmp 0x4a5541
mov ecx, dword [ebp - 0x34]
sub ecx, ebx
mov dword [ebp - 0x7c], ecx
mov eax, dword [ebp - 0x7c]
mov edx, dword [ebp - 0x34]
sar eax, 8
mov ebx, dword [ebp - 0x34]
mov byte [edx], al
inc dword [ebp - 0x34]
mov eax, dword [ebp - 0x34]
mov cl, byte [ebp - 0x7c]
and cl, 0xff
mov byte [eax], cl
inc dword [ebp - 0x34]
dec dword [ebp - 0x10]
jmp 0x4a5598
mov edi, 1
cmp edi, dword [ebp - 0xc]
jge 0x4a558c
mov eax, dword [ebp - 0x74]
push eax
mov edx, dword [ebp - 0x34]
push edx
push esi
call fcn.004a33dc
add esp, 0xc
add esi, dword [ebp - 0x74]
inc edi
cmp edi, dword [ebp - 0xc]
jl 0x4a5572
cmp dword [ebp - 0x10], 0
jle 0x4a5598
mov ecx, dword [ebp - 0xc]
sub dword [ebp - 0x10], ecx
cmp dword [ebp - 0x10], 0
jl 0x4a563d
mov edi, dword [ebp - 0x10]
dec edi
test edi, edi
jl 0x4a55f6
mov al, byte [ebp - 4]
add al, 0x44
mov byte [esi], al
inc esi
test edi, edi
je 0x4a55dd
mov byte [esi], 0x46
inc esi
test ebx, ebx
jne 0x4a55c2
xor edx, edx
jmp 0x4a55c6
mov edx, esi
sub edx, ebx
mov dword [ebp - 0x80], edx
mov ebx, esi
mov eax, dword [ebp - 0x80]
sar eax, 8
mov byte [esi], al
inc esi
mov dl, byte [ebp - 0x80]
and dl, 0xff
mov byte [esi], dl
inc esi
mov ecx, dword [ebp - 0x74]
push ecx
mov eax, dword [ebp - 0x34]
push eax
push esi
call fcn.004a33dc
add esp, 0xc
add esi, dword [ebp - 0x74]
dec edi
test edi, edi
jge 0x4a55aa
test ebx, ebx
je 0x4a565a
mov edx, esi
sub edx, ebx
inc edx
mov eax, esi
sub eax, edx
xor ecx, ecx
mov cl, byte [eax + 1]
shl ecx, 8
movzx edi, byte [eax + 2]
add ecx, edi
test ecx, ecx
jne 0x4a5619
xor edi, edi
jmp 0x4a561d
mov edi, ebx
sub edi, ecx
mov byte [esi], 0x39
mov ecx, edx
sar ecx, 8
inc esi
mov byte [eax + 1], cl
and dl, 0xff
mov byte [esi], cl
inc esi
mov byte [eax + 2], dl
mov ebx, edi
mov byte [esi], dl
inc esi
test ebx, ebx
jne 0x4a55fa
jmp 0x4a565a
mov al, byte [ebp - 4]
add al, 0x3a
mov edx, dword [ebp - 0x70]
neg edx
mov byte [esi + edx], al
jmp 0x4a565a
mov eax, dword [ebp + 0x18]
mov dword [eax], 0x4cd64e
jmp 0x4a5b93
xor ecx, ecx
mov dword [ebp - 0x34], ecx
jmp 0x4a5b8b
mov eax, dword [ebp + 8]
mov dword [ebp - 0x44], eax
mov dword [ebp - 0x48], 0xffffffff
inc dword [ebp - 0x2c]
mov edx, dword [ebp - 0x2c]
cmp byte [edx], 0x3f
jne 0x4a58f6
inc dword [ebp - 0x2c]
mov ecx, dword [ebp - 0x2c]
xor eax, eax
mov al, byte [ecx]
cmp eax, 0x3c
jg 0x4a56b2
je 0x4a577c
sub eax, 0x21
je 0x4a576f
sub eax, 2
je 0x4a56d0
sub eax, 5
je 0x4a56f2
sub eax, 0x12
je 0x4a56e5
jmp 0x4a57cf
sub eax, 0x3d
je 0x4a5762
dec eax
je 0x4a57b6
sub eax, 0x14
je 0x4a57c3
jmp 0x4a57cf
inc dword [ebp - 0x2c]
jmp 0x4a56d8
inc dword [ebp - 0x2c]
mov edx, dword [ebp - 0x2c]
cmp byte [edx], 0x29
jne 0x4a56d5
jmp 0x4a5b8b
mov ebx, 0x46
inc dword [ebp - 0x2c]
jmp 0x4a5918
inc dword [ebp - 0x2c]
xor edx, edx
mov eax, dword [ebp - 0x2c]
mov ecx, dword [ebp + 0x28]
mov ebx, 0x42
mov dl, byte [eax]
mov eax, dword [ecx + 0xc]
test byte [eax + edx], 4
je 0x4a575a
mov edx, dword [ebp - 0x2c]
xor ecx, ecx
mov cl, byte [edx]
add ecx, 0xffffffd0
mov dword [ebp - 0x48], ecx
jmp 0x4a5733
mov eax, dword [ebp - 0x48]
mov edx, dword [ebp - 0x2c]
add eax, eax
xor ecx, ecx
mov cl, byte [edx]
lea eax, [eax + eax*4]
add eax, ecx
add eax, 0xffffffd0
mov dword [ebp - 0x48], eax
inc dword [ebp - 0x2c]
mov eax, dword [ebp - 0x2c]
cmp byte [eax], 0x29
jne 0x4a571c
cmp dword [ebp - 0x48], 0
jne 0x4a5752
mov edx, dword [ebp + 0x18]
mov dword [edx], 0x4cd670
jmp 0x4a5b93
inc dword [ebp - 0x2c]
jmp 0x4a5918
dec dword [ebp - 0x2c]
jmp 0x4a5918
mov ebx, 0x3c
inc dword [ebp - 0x2c]
jmp 0x4a5918
mov ebx, 0x3d
inc dword [ebp - 0x2c]
jmp 0x4a5918
inc dword [ebp - 0x2c]
mov eax, dword [ebp - 0x2c]
mov dl, byte [eax]
sub dl, 0x21
je 0x4a579b
sub dl, 0x1c
jne 0x4a57a8
mov ebx, 0x3e
inc dword [ebp - 0x2c]
jmp 0x4a5918
mov ebx, 0x3f
inc dword [ebp - 0x2c]
jmp 0x4a5918
mov eax, dword [ebp + 0x18]
mov dword [eax], 0x4cd688
jmp 0x4a5b93
mov ebx, 0x41
inc dword [ebp - 0x2c]
jmp 0x4a5918
mov byte [esi], 0x37
inc esi
inc dword [ebp - 0x2c]
jmp 0x4a5b8b
xor eax, eax
lea edx, [ebp - 0x84]
mov dword [ebp - 0x88], eax
mov dword [ebp - 0x84], eax
mov dword [ebp - 0x8c], edx
jmp 0x4a5882
mov ecx, dword [ebp - 0x2c]
inc dword [ebp - 0x2c]
xor eax, eax
mov al, byte [ecx]
cmp eax, 0x69
jg 0x4a5810
je 0x4a582f
sub eax, 0x2d
je 0x4a5821
sub eax, 0x28
je 0x4a585b
sub eax, 3
je 0x4a5869
jmp 0x4a5874
sub eax, 0x6d
je 0x4a583a
sub eax, 6
je 0x4a5845
sub eax, 5
je 0x4a5850
jmp 0x4a5874
lea edx, [ebp - 0x88]
mov dword [ebp - 0x8c], edx
jmp 0x4a5882
mov ecx, dword [ebp - 0x8c]
or dword [ecx], 1
jmp 0x4a5882
mov eax, dword [ebp - 0x8c]
or dword [eax], 2
jmp 0x4a5882
mov edx, dword [ebp - 0x8c]
or dword [edx], 4
jmp 0x4a5882
mov ecx, dword [ebp - 0x8c]
or dword [ecx], 8
jmp 0x4a5882
mov eax, dword [ebp - 0x8c]
or dword [eax], 0x200
jmp 0x4a5882
mov edx, dword [ebp - 0x8c]
or dword [edx], 0x40
jmp 0x4a5882
mov ecx, dword [ebp + 0x18]
mov dword [ecx], 0x4cd6a9
jmp 0x4a5b93
mov eax, dword [ebp - 0x2c]
cmp byte [eax], 0x29
je 0x4a5896
mov edx, dword [ebp - 0x2c]
cmp byte [edx], 0x3a
jne 0x4a57ee
mov ecx, dword [ebp + 8]
or ecx, dword [ebp - 0x84]
mov eax, dword [ebp - 0x88]
not eax
and ecx, eax
mov dword [ebp - 0x44], ecx
mov edx, dword [ebp - 0x2c]
cmp byte [edx], 0x29
jne 0x4a58ec
test byte [ebp + 0xb], 8
je 0x4a58dc
mov ecx, dword [ebp + 8]
mov eax, dword [ebp - 0x44]
and eax, 7
and ecx, 7
cmp ecx, eax
je 0x4a58dc
mov byte [esi], 0xc
inc esi
mov ecx, dword [ebp + 0x1c]
mov edx, dword [ebp - 0x44]
and edx, 7
mov dword [ecx], edx
mov byte [esi], dl
inc esi
mov eax, dword [ebp - 0x44]
mov dword [ebp + 8], eax
xor ecx, ecx
mov dword [ebp - 0x34], ecx
jmp 0x4a5b8b
mov ebx, 0x46
inc dword [ebp - 0x2c]
jmp 0x4a5918
mov eax, dword [ebp + 0xc]
inc dword [eax]
mov edx, dword [eax]
cmp edx, 0x63
jle 0x4a5910
mov ecx, dword [ebp + 0x18]
mov dword [ecx], 0x4cd6c9
jmp 0x4a5b93
mov eax, dword [ebp + 0xc]
mov ebx, dword [eax]
add ebx, 0x46
cmp ebx, 0x41
jl 0x4a5921
mov eax, esi
jmp 0x4a5923
xor eax, eax
mov dword [ebp - 0x34], eax
mov byte [esi], bl
mov dword [ebp - 0x28], esi
lea ecx, [ebp - 0x24]
mov edx, dword [ebp + 0x28]
lea eax, [ebp - 0x4c]
push edx
push ecx
push eax
cmp ebx, 0x3e
mov edx, dword [ebp - 0x48]
push edx
je 0x4a5949
cmp ebx, 0x3f
je 0x4a5949
xor ecx, ecx
jmp 0x4a594e
mov ecx, 1
push ecx
lea edx, [ebp - 0x2c]
mov eax, dword [ebp + 0x18]
lea ecx, [ebp - 0x28]
push eax
push edx
push ecx
mov eax, dword [ebp + 0xc]
push eax
mov edx, dword [ebp + 8]
mov ecx, dword [ebp - 0x44]
and ecx, 7
and edx, 7
cmp edx, ecx
je 0x4a5977
mov eax, dword [ebp - 0x44]
and eax, 7
jmp 0x4a597a
or eax, 0xffffffff
push eax
mov edx, dword [ebp + 8]
or edx, 0x8000000
push edx
call fcn.004a5ba4
add esp, 0x2c
test eax, eax
je 0x4a5b93
cmp ebx, 0x42
jne 0x4a59e8
mov dword [ebp - 0x90], esi
xor ecx, ecx
mov dword [ebp - 0x20], ecx
inc dword [ebp - 0x20]
xor edx, edx
mov eax, dword [ebp - 0x90]
mov ecx, dword [ebp - 0x90]
mov dl, byte [eax + 1]
xor eax, eax
shl edx, 8
mov al, byte [ecx + 2]
or edx, eax
add dword [ebp - 0x90], edx
mov edx, dword [ebp - 0x90]
cmp byte [edx], 0x39
jne 0x4a59a5
cmp dword [ebp - 0x20], 2
jle 0x4a59e8
mov ecx, dword [ebp + 0x18]
mov dword [ecx], 0x4cd6f7
jmp 0x4a5b93
cmp dword [ebp - 0x4c], 0
jle 0x4a5a25
cmp ebx, 0x46
jge 0x4a5a08
cmp ebx, 0x41
je 0x4a5a08
cmp ebx, 0x3c
je 0x4a5a08
cmp ebx, 0x42
jne 0x4a5a25
cmp dword [ebp - 0x20], 2
jne 0x4a5a25
mov eax, dword [ebp + 0x20]
cmp ebx, 0x3c
mov edx, dword [eax]
mov dword [ebp - 0x1c], edx
mov ecx, dword [ebp + 0x20]
mov eax, dword [ebp - 0x4c]
mov dword [ecx], eax
je 0x4a5a25
mov edx, dword [ebp + 0x24]
mov ecx, dword [ebp - 0x24]
add dword [edx], ecx
mov esi, dword [ebp - 0x28]
mov eax, dword [ebp - 0x2c]
cmp byte [eax], 0x29
je 0x4a5b8b
mov edx, dword [ebp + 0x18]
mov dword [edx], 0x4cd729
jmp 0x4a5b93
mov ecx, dword [ebp - 0x2c]
mov dword [ebp - 0x30], ecx
mov eax, dword [ebp + 0x28]
push eax
push 0
mov edx, dword [ebp + 8]
push edx
mov ecx, dword [ebp + 0xc]
mov eax, dword [ecx]
push eax
mov edx, dword [ebp + 0x18]
push edx
lea ecx, [ebp - 0x2c]
push ecx
call fcn.004a4648
add esp, 0x18
mov ebx, eax
test ebx, ebx
jge 0x4a5ab0
mov eax, ebx
neg eax
cmp eax, 0xc
jl 0x4a5a8b
mov dword [ebp - 0x34], esi
mov byte [esi], 0x36
inc esi
neg bl
add bl, 0xf4
mov byte [esi], bl
inc esi
jmp 0x4a5b8b
mov edx, ebx
neg edx
cmp edx, 3
jle 0x4a5aa1
mov ecx, ebx
neg ecx
cmp ecx, 0xa
jge 0x4a5aa1
mov eax, esi
jmp 0x4a5aa3
xor eax, eax
neg bl
mov dword [ebp - 0x34], eax
mov byte [esi], bl
inc esi
jmp 0x4a5b8b
mov edx, dword [ebp - 0x30]
mov ebx, 0x5c
mov dword [ebp - 0x2c], edx
mov dword [ebp - 0x34], esi
mov byte [esi], 0x10
add esi, 2
xor edi, edi
test byte [ebp + 8], 8
je 0x4a5af6
mov eax, dword [ebp + 0x28]
mov edx, dword [eax + 0xc]
test byte [edx + ebx], 1
jne 0x4a5b33
cmp ebx, 0x23
jne 0x4a5af6
inc dword [ebp - 0x2c]
mov ecx, dword [ebp - 0x2c]
xor ebx, ebx
mov bl, byte [ecx]
test ebx, ebx
je 0x4a5af0
cmp ebx, 0xa
jne 0x4a5add
test ebx, ebx
je 0x4a5b55
jmp 0x4a5b33
cmp ebx, 0x5c
jne 0x4a5b2f
mov eax, dword [ebp - 0x2c]
mov dword [ebp - 0x30], eax
mov edx, dword [ebp + 0x28]
push edx
push 0
mov ecx, dword [ebp + 8]
push ecx
mov eax, dword [ebp + 0xc]
mov edx, dword [eax]
push edx
mov ecx, dword [ebp + 0x18]
push ecx
lea eax, [ebp - 0x2c]
push eax
call fcn.004a4648
add esp, 0x18
mov ebx, eax
test ebx, ebx
jge 0x4a5b2f
mov eax, dword [ebp - 0x30]
mov dword [ebp - 0x2c], eax
jmp 0x4a5b55
mov byte [esi], bl
inc esi
inc edi
cmp edi, 0xff
jge 0x4a5b55
inc dword [ebp - 0x2c]
xor ebx, ebx
mov edx, dword [ebp - 0x2c]
mov eax, dword [ebp + 0x28]
mov bl, byte [edx]
mov edx, dword [eax + 0xc]
test byte [edx + ebx], 0x80
je 0x4a5ac6
cmp edi, 1
jle 0x4a5b61
xor ecx, ecx
mov cl, byte [esi - 2]
jmp 0x4a5b66
mov eax, dword [ebp + 0x20]
mov ecx, dword [eax]
mov dword [ebp - 0x1c], ecx
xor edx, edx
mov eax, dword [ebp + 0x20]
mov dl, byte [esi - 1]
mov ecx, edi
mov dword [eax], edx
mov edx, dword [ebp + 0x24]
add dword [edx], edi
cmp edi, 0xff
mov eax, dword [ebp - 0x34]
mov byte [eax + 1], cl
jge 0x4a5b8b
dec dword [ebp - 0x2c]
inc dword [ebp - 0x2c]
jmp 0x4a4bc0
mov edx, dword [ebp + 0x14]
xor eax, eax
mov ecx, dword [ebp - 0x2c]
mov dword [edx], ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret