Function at 0x82e010
Capabilities:
Parse credit card information

Disassembly:
push 0x6044f5
lea eax, [ebp - 8]
mov edx, dword [0x5f8a70]
call fcn.0042b72c
push 0xff58ffe2
invalid
push 0xff58ffe2
loopne 0x604ed8
mov cl, 0x44
loop 0x604ef2
invalid
jmp 0x604edd
push ebp
mov ebp, esp
add esp, 0xffffff8c
push ebx
push esi
push edi
mov eax, dword [ebp + 0x10]
mov esi, dword [eax]
mov eax, dword [ebp + 0x14]
mov edx, dword [eax]
mov dword [ebp - 0x20], edx
xor edi, edi
test byte [ebp + 9], 2
setne al
and eax, 1
mov dword [ebp - 0x14], eax
mov edx, dword [ebp - 0x14]
xor edx, 1
mov dword [ebp - 0x18], edx
xor ebx, ebx
mov ecx, dword [ebp - 0x20]
test byte [ebp + 8], 8
mov bl, byte [ecx]
je 0x82e07c
mov eax, dword [ebp + 0x20]
mov edx, dword [eax + 0xc]
test byte [edx + ebx], 1
jne 0x82ecef
cmp ebx, 0x23
jne 0x82e07c
inc dword [ebp - 0x20]
mov ecx, dword [ebp - 0x20]
xor ebx, ebx
mov bl, byte [ecx]
test ebx, ebx
je 0x82ecef
cmp ebx, 0xa
jne 0x82e060
jmp 0x82ecef
mov eax, ebx
cmp eax, 0x2e
jg 0x82e0bd
je 0x82e11c
cmp eax, 0x29
jg 0x82e0a8
je 0x82e0ef
sub eax, 1
jb 0x82e0ef
sub eax, 0x23
je 0x82e111
sub eax, 4
je 0x82e878
jmp 0x82ec3e
sub eax, 0x2a
je 0x82e4f2
dec eax
je 0x82e500
jmp 0x82ec3e
cmp eax, 0x5e
jg 0x82e0de
je 0x82e106
sub eax, 0x3f
je 0x82e510
sub eax, 0x1c
je 0x82e127
dec eax
je 0x82ebc9
jmp 0x82ec3e
sub eax, 0x7b
je 0x82e4ab
dec eax
je 0x82e0ef
jmp 0x82ec3e
mov edx, dword [ebp + 0x10]
mov eax, 1
mov dword [edx], esi
mov ecx, dword [ebp + 0x14]
mov ebx, dword [ebp - 0x20]
mov dword [ecx], ebx
jmp 0x82ed01
xor edi, edi
mov byte [esi], 0xd
inc esi
jmp 0x82ecef
xor edi, edi
mov byte [esi], 0xe
inc esi
jmp 0x82ecef
mov edi, esi
mov byte [esi], 0xf
inc esi
jmp 0x82ecef
mov edi, esi
mov byte [esi], 0x35
inc esi
inc dword [ebp - 0x20]
mov eax, dword [ebp - 0x20]
xor ebx, ebx
mov bl, byte [eax]
cmp ebx, 0x5e
jne 0x82e14f
mov dword [ebp - 0x28], 1
inc dword [ebp - 0x20]
mov eax, dword [ebp - 0x20]
xor ebx, ebx
mov bl, byte [eax]
jmp 0x82e154
xor eax, eax
mov dword [ebp - 0x28], eax
xor edx, edx
lea ecx, [ebp - 0x74]
mov dword [ebp - 0x2c], edx
mov dword [ebp - 0x30], 0xffffffff
push 0x20
push 0
push ecx
call fcn.008202d7
add esp, 0xc
test ebx, ebx
jne 0x82e182
mov eax, dword [ebp + 0x18]
mov dword [eax], 0x865f95
jmp 0x82ecf7
cmp ebx, 0x5c
jne 0x82e2f6
mov edx, dword [ebp + 0x20]
push edx
push 1
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 - 0x20]
push eax
call fcn.0082db3c
add esp, 0x18
mov ebx, eax
mov eax, ebx
neg eax
cmp eax, 3
jne 0x82e1c0
mov ebx, 8
jmp 0x82e2f6
test ebx, ebx
jge 0x82e2f6
mov eax, dword [ebp + 0x20]
neg ebx
mov edx, dword [eax + 8]
add ebx, 0xfffffffc
mov dword [ebp - 0x38], edx
cmp ebx, 5
mov dword [ebp - 0x2c], 0xa
ja case.default.0x82e1e6
jmp dword [ebx*4 + 0x82d7ed]
mov eax, dword [ebp + 0x18]
mov dword [eax], 0x865fbf
jmp 0x82ecf7
mov ecx, dword [ebp - 0x20]
xor eax, eax
mov al, byte [ecx + 1]
cmp eax, 0x2d
jne 0x82e3e6
mov edx, dword [ebp - 0x20]
xor ecx, ecx
mov cl, byte [edx + 2]
cmp ecx, 0x5d
je 0x82e3e6
add dword [ebp - 0x20], 2
mov eax, dword [ebp - 0x20]
movzx eax, byte [eax]
test eax, eax
jne 0x82e334
mov edx, dword [ebp + 0x18]
mov dword [edx], 0x865fea
jmp 0x82ecf7
cmp eax, 0x5c
jne 0x82e377
mov ecx, dword [ebp + 0x20]
push ecx
push 1
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 - 0x20]
push eax
call fcn.0082db3c
add esp, 0x18
test eax, eax
jge 0x82e377
cmp eax, 0xfffffffd
jne 0x82e369
mov eax, 8
jmp 0x82e377
mov edx, dword [ebp + 0x18]
mov dword [edx], 0x866014
jmp 0x82ecf7
cmp ebx, eax
jle 0x82e389
mov ecx, dword [ebp + 0x18]
mov dword [ecx], 0x86603f
jmp 0x82ecf7
cmp eax, ebx
jl 0x82e431
mov ecx, ebx
and ecx, 7
mov dl, 1
shl dl, cl
mov ecx, ebx
test ecx, ecx
jns 0x82e3a3
add ecx, 7
sar ecx, 3
or byte [ebp + ecx - 0x74], dl
test byte [ebp + 8], 1
je 0x82e3d9
mov edx, dword [ebp + 0x20]
mov edx, dword [edx + 4]
xor ecx, ecx
mov cl, byte [edx + ebx]
mov dword [ebp - 0x3c], ecx
mov ecx, dword [ebp - 0x3c]
and ecx, 7
mov dl, 1
shl dl, cl
mov ecx, dword [ebp - 0x3c]
test ecx, ecx
jns 0x82e3d2
add ecx, 7
sar ecx, 3
or byte [ebp + ecx - 0x74], dl
inc dword [ebp - 0x2c]
mov dword [ebp - 0x30], ebx
inc ebx
cmp eax, ebx
jge 0x82e391
jmp 0x82e431
mov ecx, ebx
mov al, 1
and ecx, 7
mov edx, ebx
shl al, cl
test edx, edx
jns 0x82e3f8
add edx, 7
sar edx, 3
or byte [ebp + edx - 0x74], al
test byte [ebp + 8], 1
je 0x82e42b
mov ecx, dword [ebp + 0x20]
xor edx, edx
mov eax, dword [ecx + 4]
mov dl, byte [eax + ebx]
mov al, 1
mov ebx, edx
mov ecx, ebx
mov edx, ebx
and ecx, 7
shl al, cl
test edx, edx
jns 0x82e424
add edx, 7
sar edx, 3
or byte [ebp + edx - 0x74], al
inc dword [ebp - 0x2c]
mov dword [ebp - 0x30], ebx
inc dword [ebp - 0x20]
mov eax, dword [ebp - 0x20]
xor ebx, ebx
mov bl, byte [eax]
cmp ebx, 0x5d
jne 0x82e170
cmp dword [ebp - 0x2c], 1
jne 0x82e46f
cmp dword [ebp - 0x30], 0
jl 0x82e46f
cmp dword [ebp - 0x28], 0
je 0x82e45c
mov byte [esi - 1], 0x11
jmp 0x82e464
mov byte [esi - 1], 0x10
mov byte [esi], 1
inc esi
mov al, byte [ebp - 0x30]
mov byte [esi], al
inc esi
jmp 0x82ecef
cmp dword [ebp - 0x28], 0
je 0x82e494
xor ebx, ebx
mov eax, esi
mov dword [ebp - 0x54], eax
lea eax, [ebp - 0x74]
mov dl, byte [eax]
mov ecx, dword [ebp - 0x54]
not dl
mov byte [ecx], dl
inc eax
inc dword [ebp - 0x54]
inc ebx
cmp ebx, 0x20
jl 0x82e47f
jmp 0x82e4a3
push 0x20
lea eax, [ebp - 0x74]
push eax
push esi
call fcn.0082010c
add esp, 0xc
add esi, 0x20
jmp 0x82ecef
mov edx, dword [ebp + 0x20]
push edx
mov ecx, dword [ebp - 0x20]
inc ecx
push ecx
call fcn.0082dcec
add esp, 8
test eax, eax
je 0x82ec3e
mov eax, dword [ebp + 0x20]
lea ecx, [ebp - 0xc]
push eax
lea eax, [ebp - 8]
mov edx, dword [ebp + 0x18]
push edx
push ecx
push eax
mov edx, dword [ebp - 0x20]
inc edx
push edx
call fcn.0082dd88
add esp, 0x14
mov dword [ebp - 0x20], eax
mov ecx, dword [ebp + 0x18]
cmp dword [ecx], 0
jne 0x82ecf7
jmp 0x82e51c
xor eax, eax
mov dword [ebp - 8], eax
mov dword [ebp - 0xc], 0xffffffff
jmp 0x82e51c
mov dword [ebp - 8], 1
mov dword [ebp - 0xc], 0xffffffff
jmp 0x82e51c
xor edx, edx
mov dword [ebp - 8], edx
mov dword [ebp - 0xc], 1
test edi, edi
jne 0x82e52e
mov ecx, dword [ebp + 0x18]
mov dword [ecx], 0x866065
jmp 0x82ecf7
mov eax, dword [ebp - 0x20]
xor edx, edx
mov dl, byte [eax + 1]
cmp edx, 0x3f
jne 0x82e546
mov ecx, dword [ebp - 0x18]
mov dword [ebp - 4], ecx
inc dword [ebp - 0x20]
jmp 0x82e54c
mov eax, dword [ebp - 0x14]
mov dword [ebp - 4], eax
cmp dword [ebp - 0xc], 0
jne 0x82e559
mov esi, edi
jmp 0x82e871
xor eax, eax
mov al, byte [edi]
cmp eax, 0x10
jne 0x82e588
xor eax, eax
mov al, byte [edi + 1]
cmp eax, 1
jne 0x82e575
xor ebx, ebx
mov esi, edi
mov bl, byte [edi + 2]
jmp 0x82e57f
xor ebx, ebx
mov bl, byte [edi + eax + 1]
dec byte [edi + 1]
dec esi
xor eax, eax
jmp 0x82e5bf
xor edx, edx
mov dl, byte [edi]
cmp edx, 0x11
jne 0x82e5a4
mov eax, 9
xor ebx, ebx
mov bl, byte [edi + 1]
mov esi, edi
jmp 0x82e5bf
xor edx, edx
mov dl, byte [edi]
cmp edx, 0xa
jl 0x82e5b6
cmp edx, 0xf
jne 0x82e6aa
mov eax, 0x12
mov ebx, edx
mov esi, edi
add dword [ebp - 4], eax
cmp dword [ebp - 8], 0
jne 0x82e60e
cmp dword [ebp - 0xc], 0xffffffff
jne 0x82e5db
mov al, byte [ebp - 4]
add al, 0x12
mov byte [esi], al
inc esi
jmp 0x82e6a2
cmp dword [ebp - 0xc], 1
jne 0x82e5ef
mov dl, byte [ebp - 4]
add dl, 0x16
mov byte [esi], dl
inc esi
jmp 0x82e6a2
mov cl, byte [ebp - 4]
add cl, 0x18
mov byte [esi], cl
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 0x82e6a2
cmp dword [ebp - 8], 1
jne 0x82e625
cmp dword [ebp - 0xc], 0xffffffff
jne 0x82e625
mov dl, byte [ebp - 4]
add dl, 0x14
mov byte [esi], dl
inc esi
jmp 0x82e6a2
cmp dword [ebp - 8], 1
je 0x82e643
add al, 0x1a
mov byte [esi], al
inc esi
mov ecx, dword [ebp - 8]
sar ecx, 8
mov byte [esi], cl
inc esi
mov al, byte [ebp - 8]
and al, 0xff
mov byte [esi], al
inc esi
jmp 0x82e664
xor edx, edx
mov dl, byte [edi]
cmp edx, 0x10
jne 0x82e65a
cmp edi, esi
jne 0x82e655
add esi, 2
jmp 0x82e664
inc byte [edi + 1]
jmp 0x82e664
xor ecx, ecx
mov cl, byte [edi]
cmp ecx, 0x11
jne 0x82e664
inc esi
cmp dword [ebp - 0xc], 0
jge 0x82e677
mov byte [esi], bl
inc esi
mov al, byte [ebp - 4]
add al, 0x12
mov byte [esi], al
inc esi
jmp 0x82e6a2
mov edx, dword [ebp - 0xc]
cmp edx, dword [ebp - 8]
je 0x82e6a2
mov byte [esi], bl
inc esi
mov ecx, dword [ebp - 8]
sub dword [ebp - 0xc], ecx
mov al, byte [ebp - 4]
add al, 0x18
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
mov byte [esi], bl
inc esi
jmp 0x82e871
xor eax, eax
mov al, byte [edi]
cmp eax, 0x35
je 0x82e6c0
xor edx, edx
mov dl, byte [edi]
cmp edx, 0x36
jne 0x82e749
cmp dword [ebp - 8], 0
jne 0x82e6d9
cmp dword [ebp - 0xc], 0xffffffff
jne 0x82e6d9
mov al, byte [ebp - 4]
add al, 0x2d
mov byte [esi], al
inc esi
jmp 0x82e871
cmp dword [ebp - 8], 1
jne 0x82e6f3
cmp dword [ebp - 0xc], 0xffffffff
jne 0x82e6f3
mov dl, byte [ebp - 4]
add dl, 0x2f
mov byte [esi], dl
inc esi
jmp 0x82e871
cmp dword [ebp - 8], 0
jne 0x82e70d
cmp dword [ebp - 0xc], 1
jne 0x82e70d
mov cl, byte [ebp - 4]
add cl, 0x31
mov byte [esi], cl
inc esi
jmp 0x82e871
mov al, byte [ebp - 4]
add al, 0x33
mov byte [esi], al
inc esi
mov edx, dword [ebp - 8]
sar edx, 8
mov byte [esi], dl
inc esi
mov cl, byte [ebp - 8]
and cl, 0xff
mov byte [esi], cl
inc esi
cmp dword [ebp - 0xc], 0xffffffff
jne 0x82e732
xor edi, edi
mov dword [ebp - 0xc], edi
mov eax, dword [ebp - 0xc]
sar eax, 8
mov byte [esi], al
inc esi
mov dl, byte [ebp - 0xc]
and dl, 0xff
mov byte [esi], dl
inc esi
jmp 0x82e871
xor ecx, ecx
mov cl, byte [edi]
cmp ecx, 0x45
jge 0x82e768
xor eax, eax
mov al, byte [edi]
cmp eax, 0x40
je 0x82e768
xor edx, edx
mov dl, byte [edi]
cmp edx, 0x41
jne 0x82e863
xor ecx, ecx
mov eax, esi
sub eax, edi
mov dword [ebp - 0x40], ecx
mov dword [ebp - 0x44], eax
cmp dword [ebp - 0xc], 0xffffffff
jne 0x82e79d
mov eax, edi
xor edx, edx
xor ecx, ecx
mov dl, byte [eax + 1]
mov cl, byte [eax + 2]
shl edx, 8
add edx, ecx
add eax, edx
xor edx, edx
mov dl, byte [eax]
cmp edx, 0x38
jne 0x82e77c
mov ecx, esi
sub ecx, eax
mov dword [ebp - 0x40], ecx
cmp dword [ebp - 8], 0
jle 0x82e7d8
cmp dword [ebp - 0xc], 0xffffffff
je 0x82e7b1
mov eax, dword [ebp - 0xc]
cmp eax, dword [ebp - 8]
jne 0x82e7d8
mov ebx, 1
cmp ebx, dword [ebp - 8]
jge 0x82e84d
mov eax, dword [ebp - 0x44]
push eax
push edi
push esi
call fcn.0082010c
add esp, 0xc
add esi, dword [ebp - 0x44]
inc ebx
cmp ebx, dword [ebp - 8]
jl 0x82e7bf
jmp 0x82e84d
cmp dword [ebp - 8], 0
jne 0x82e7f8
mov edx, dword [ebp - 0x44]
lea ecx, [edi + 1]
push edx
push edi
push ecx
call fcn.00820225
mov al, byte [ebp - 4]
add esp, 0xc
add al, 0x43
inc esi
mov byte [edi], al
inc edi
mov ebx, 1
cmp ebx, dword [ebp - 8]
jge 0x82e819
mov eax, dword [ebp - 0x44]
push eax
push edi
push esi
call fcn.0082010c
add esp, 0xc
add esi, dword [ebp - 0x44]
inc ebx
cmp ebx, dword [ebp - 8]
jl 0x82e802
cmp dword [ebp - 8], 0
jle 0x82e824
mov ebx, dword [ebp - 8]
jmp 0x82e829
mov ebx, 1
cmp ebx, dword [ebp - 0xc]
jge 0x82e84d
mov al, byte [ebp - 4]
add al, 0x43
mov byte [esi], al
inc esi
mov edx, dword [ebp - 0x44]
push edx
push edi
push esi
call fcn.0082010c
add esp, 0xc
add esi, dword [ebp - 0x44]
inc ebx
cmp ebx, dword [ebp - 0xc]
jl 0x82e82e
cmp dword [ebp - 0xc], 0xffffffff
jne 0x82e871
mov cl, byte [ebp - 4]
add cl, 0x39
mov ebx, dword [ebp - 0x40]
neg ebx
mov byte [esi + ebx], cl
jmp 0x82e871
mov eax, dword [ebp + 0x18]
mov dword [eax], 0x866077
jmp 0x82ecf7
xor edi, edi
jmp 0x82ecef
mov eax, dword [ebp + 8]
mov dword [ebp - 0x34], 0xffffffff
inc dword [ebp - 0x20]
mov edx, dword [ebp - 0x20]
xor ecx, ecx
mov cl, byte [edx]
cmp ecx, 0x3f
jne 0x82eadc
inc dword [ebp - 0x20]
mov edx, dword [ebp - 0x20]
xor ecx, ecx
mov cl, byte [edx]
add ecx, 0xffffffdf
cmp ecx, 0x1d
ja 0x82e9e2
mov cl, byte [ecx + 0x82deb8]
jmp dword [ecx*4 + 0x82ded6]
xor eax, eax
lea edx, [ebp - 0x48]
mov dword [ebp - 0x4c], eax
mov dword [ebp - 0x48], eax
mov dword [ebp - 0x50], edx
jmp 0x82ea6d
mov ecx, dword [ebp - 0x20]
inc dword [ebp - 0x20]
movzx edi, byte [ecx]
cmp edi, 0x69
jg 0x82ea13
je 0x82ea2c
sub edi, 0x2d
je 0x82ea24
sub edi, 0x28
je 0x82ea4c
sub edi, 3
je 0x82ea57
jmp 0x82ea5f
sub edi, 0x6d
je 0x82ea34
sub edi, 6
je 0x82ea3c
sub edi, 5
je 0x82ea44
jmp 0x82ea5f
lea eax, [ebp - 0x4c]
mov dword [ebp - 0x50], eax
jmp 0x82ea6d
mov edx, dword [ebp - 0x50]
or dword [edx], 1
jmp 0x82ea6d
mov ecx, dword [ebp - 0x50]
or dword [ecx], 2
jmp 0x82ea6d
mov edi, dword [ebp - 0x50]
or dword [edi], 4
jmp 0x82ea6d
mov eax, dword [ebp - 0x50]
or dword [eax], 8
jmp 0x82ea6d
mov edx, dword [ebp - 0x50]
or dword [edx], 0x200
jmp 0x82ea6d
mov ecx, dword [ebp - 0x50]
or dword [ecx], 0x40
jmp 0x82ea6d
mov eax, dword [ebp + 0x18]
mov dword [eax], 0x8660ba
jmp 0x82ecf7
mov edx, dword [ebp - 0x20]
xor ecx, ecx
mov cl, byte [edx]
cmp ecx, 0x29
je 0x82ea89
mov edi, dword [ebp - 0x20]
xor eax, eax
mov al, byte [edi]
cmp eax, 0x3a
jne 0x82e9f2
mov eax, dword [ebp + 8]
mov edx, dword [ebp - 0x4c]
not edx
or eax, dword [ebp - 0x48]
mov ecx, dword [ebp - 0x20]
and eax, edx
xor edx, edx
mov dl, byte [ecx]
cmp edx, 0x29
jne 0x82ead2
test byte [ebp + 9], 0x20
je 0x82eac8
mov ecx, dword [ebp + 8]
mov edx, eax
and edx, 7
and ecx, 7
cmp ecx, edx
je 0x82eac8
mov byte [esi], 0xc
inc esi
mov edx, dword [ebp + 0x1c]
mov ecx, eax
and ecx, 7
mov dword [edx], ecx
mov byte [esi], cl
inc esi
mov dword [ebp + 8], eax
xor edi, edi
jmp 0x82ecef
mov ebx, 0x45
inc dword [ebp - 0x20]
jmp 0x82eafe
mov edx, dword [ebp + 0xc]
inc dword [edx]
mov ecx, dword [edx]
cmp ecx, 0x63
jle 0x82eaf6
mov eax, dword [ebp + 0x18]
mov dword [eax], 0x8660da
jmp 0x82ecf7
mov edx, dword [ebp + 0xc]
mov ebx, dword [edx]
add ebx, 0x45
cmp ebx, 0x40
jl 0x82eb07
mov edi, esi
jmp 0x82eb09
xor edi, edi
mov byte [esi], bl
mov dword [ebp - 0x1c], esi
mov edx, dword [ebp + 0x20]
cmp ebx, 0x3d
push edx
mov ecx, dword [ebp - 0x34]
push ecx
je 0x82eb24
cmp ebx, 0x3e
je 0x82eb24
xor edx, edx
jmp 0x82eb29
mov edx, 1
push edx
lea edx, [ebp - 0x20]
mov ecx, dword [ebp + 0x18]
push ecx
lea ecx, [ebp - 0x1c]
push edx
push ecx
mov edx, dword [ebp + 0xc]
push edx
mov edx, eax
mov ecx, dword [ebp + 8]
and edx, 7
and ecx, 7
cmp ecx, edx
je 0x82eb4e
and eax, 7
jmp 0x82eb51
or eax, 0xffffffff
push eax
mov ecx, dword [ebp + 8]
or ecx, 0x2000
push ecx
call fcn.0082ed08
add esp, 0x24
test eax, eax
je 0x82ecf7
cmp ebx, 0x41
jne 0x82eba3
xor edx, edx
mov eax, esi
xor ecx, ecx
xor ebx, ebx
mov cl, byte [eax + 1]
mov bl, byte [eax + 2]
shl ecx, 8
inc edx
or ecx, ebx
add eax, ecx
xor ecx, ecx
mov cl, byte [eax]
cmp ecx, 0x38
jne 0x82eb75
cmp edx, 2
jle 0x82eba3
mov eax, dword [ebp + 0x18]
mov dword [eax], 0x866108
jmp 0x82ecf7
mov esi, dword [ebp - 0x1c]
mov eax, dword [ebp - 0x20]
xor edx, edx
mov dl, byte [eax]
cmp edx, 0x29
je 0x82ecef
mov ecx, dword [ebp + 0x18]
mov dword [ecx], 0x86613a
jmp 0x82ecf7
mov edi, dword [ebp - 0x20]
mov dword [ebp - 0x24], edi
mov eax, dword [ebp + 0x20]
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 - 0x20]
push ecx
call fcn.0082db3c
add esp, 0x18
mov ebx, eax
test ebx, ebx
jge 0x82ec33
mov eax, ebx
neg eax
cmp eax, 0xc
jl 0x82ec11
mov edi, esi
mov byte [esi], 0x36
inc esi
neg bl
add bl, 0xf4
mov byte [esi], bl
inc esi
jmp 0x82ecef
mov eax, ebx
neg eax
cmp eax, 3
jle 0x82ec27
mov edx, ebx
neg edx
cmp edx, 0xa
jge 0x82ec27
mov edi, esi
jmp 0x82ec29
xor edi, edi
neg bl
mov byte [esi], bl
inc esi
jmp 0x82ecef
mov eax, dword [ebp - 0x24]
mov ebx, 0x5c
mov dword [ebp - 0x20], eax
mov edi, esi
mov byte [esi], 0x10
add esi, 2
xor eax, eax
mov dword [ebp - 0x10], eax
test byte [ebp + 8], 8
je 0x82ec7b
mov edx, dword [ebp + 0x20]
mov ecx, dword [edx + 0xc]
test byte [ecx + ebx], 1
jne 0x82ecba
cmp ebx, 0x23
jne 0x82ec7b
inc dword [ebp - 0x20]
mov eax, dword [ebp - 0x20]
xor ebx, ebx
mov bl, byte [eax]
test ebx, ebx
je 0x82ec75
cmp ebx, 0xa
jne 0x82ec62
test ebx, ebx
je 0x82ecdd
jmp 0x82ecba
cmp ebx, 0x5c
jne 0x82ecb4
mov eax, dword [ebp - 0x20]
mov dword [ebp - 0x24], eax
mov edx, dword [ebp + 0x20]
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 - 0x20]
push eax
call fcn.0082db3c
add esp, 0x18
mov ebx, eax
test ebx, ebx
jge 0x82ecb4
mov eax, dword [ebp - 0x24]
mov dword [ebp - 0x20], eax
jmp 0x82ecdd
mov byte [esi], bl
inc esi
inc dword [ebp - 0x10]
cmp dword [ebp - 0x10], 0xff
jge 0x82ecdd
inc dword [ebp - 0x20]
xor ebx, ebx
mov edx, dword [ebp - 0x20]
mov eax, dword [ebp + 0x20]
mov bl, byte [edx]
mov edx, dword [eax + 0xc]
test byte [edx + ebx], 0x80
je 0x82ec4b
mov cl, byte [ebp - 0x10]
mov byte [edi + 1], cl
cmp dword [ebp - 0x10], 0xff
jge 0x82ecef
dec dword [ebp - 0x20]
inc dword [ebp - 0x20]
jmp 0x82e03e
mov eax, dword [ebp + 0x14]
mov edx, dword [ebp - 0x20]
mov dword [eax], edx
xor eax, eax
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret