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

Disassembly:
push ebp
mov ebp, esp
sub esp, 0xa0
push ebx
mov eax, ecx
mov dword [ebp - 0x58], edx
mov ecx, dword [ebp + 8]
xor ebx, ebx
push esi
mov dword [ebp - 0x9c], eax
xor esi, esi
mov eax, dword [eax]
inc esi
mov ecx, dword [ecx]
mov edx, eax
shr edx, 9
and edx, esi
mov dword [ebp - 0x1c], eax
push edi
xor edi, edi
mov dword [ebp - 0x38], ebx
and dword [ebp - 0x44], edi
and eax, esi
mov dword [ebp - 0x4c], ebx
mov dword [ebp - 0x30], ebx
mov dword [ebp - 0x84], ebx
mov dword [ebp - 0x10], ebx
mov dword [ebp - 0x8c], ebx
mov ebx, dword [ebp + 0xc]
mov dword [ebp - 0x98], edx
xor edx, esi
push 0xfffffffffffffffe
shl eax, 8
mov ebx, dword [ebx]
mov dword [ebp - 0x94], edx
pop edx
mov dword [ebp - 0x5c], eax
mov eax, edi
mov dword [ebp - 4], ecx
mov dword [ebp - 0x18], edi
mov dword [ebp - 0x34], edx
mov dword [ebp - 0x48], edx
mov dword [ebp - 0x2c], edx
mov dword [ebp - 0x28], edx
mov dword [ebp - 8], ebx
movzx edx, byte [ebx]
mov dword [ebp - 0x14], edx
test eax, eax
je 0x47624c
test edx, edx
je 0x47624c
cmp edx, 0x5c
jne 0x4761e4
cmp byte [ebx + 1], 0x45
jne 0x4761e4
and dword [ebp - 0x10], 0
inc ebx
jmp 0x4762e7
mov edi, dword [ebp - 0x44]
mov edx, dword [ebp + 0x20]
test edi, edi
je 0x476215
movzx ecx, byte [edi + 2]
movzx eax, byte [edi + 3]
shl ecx, 8
or ecx, eax
sub ebx, ecx
mov ecx, dword [ebp - 4]
sub ebx, dword [edx + 0x14]
mov eax, ebx
mov byte [edi + 5], bl
sar eax, 8
and dword [ebp - 0x44], 0
mov byte [edi + 4], al
mov ebx, dword [ebp - 8]
test dword [ebp - 0x1c], 0x4000
je 0x476ad3
mov eax, ebx
mov word [ecx], 0xff40
sub eax, dword [edx + 0x14]
sar eax, 8
sub bl, byte [edx + 0x14]
mov byte [ecx + 2], al
lea eax, [ecx + 6]
mov dword [ebp - 0x44], ecx
mov byte [ecx + 3], bl
mov word [ecx + 4], 0
mov dword [ebp - 4], eax
jmp 0x476ad3
cmp edx, 0x2a
je 0x4762b7
cmp edx, 0x2b
je 0x4762b7
cmp edx, 0x3f
je 0x4762b7
cmp edx, 0x7b
jne 0x47626f
lea ecx, [ebx + 1]
call fcn.00475bff
mov edx, dword [ebp - 0x14]
test eax, eax
jne 0x4762b7
xor esi, esi
cmp dword [ebp - 0x44], esi
je 0x4762b7
mov ecx, dword [ebp - 0x84]
mov eax, ecx
dec ecx
mov dword [ebp - 0x84], ecx
test eax, eax
jg 0x4762b7
mov eax, dword [ebp - 0x44]
movzx ecx, byte [eax + 2]
movzx eax, byte [eax + 3]
shl ecx, 8
or ecx, eax
sub ebx, ecx
mov ecx, dword [ebp + 0x20]
sub ebx, dword [ecx + 0x14]
mov ecx, dword [ebp - 0x44]
mov eax, ebx
sar eax, 8
and dword [ebp - 0x44], esi
mov byte [ecx + 4], al
mov eax, ecx
mov byte [eax + 5], bl
mov ebx, dword [ebp - 8]
test byte [ebp - 0x1c], 8
mov ecx, dword [ebp + 0x20]
je 0x4762f0
mov eax, dword [ecx + 0xc]
test byte [edx + eax], 1
jne 0x4762e1
cmp edx, 0x23
jne 0x4762f0
inc ebx
mov dword [ebp - 8], ebx
movzx edx, byte [ebx]
mov dword [ebp - 0x14], edx
test edx, edx
je 0x4762f0
cmp edx, 0xa
jne 0x4762ce
mov ecx, dword [ebp - 4]
xor esi, esi
inc esi
mov eax, dword [ebp - 0x10]
inc ebx
jmp 0x4761ba
test dword [ebp - 0x1c], 0x4000
je 0x476338
test esi, esi
jne 0x476338
mov eax, dword [ebp - 4]
mov dword [ebp - 0x44], eax
mov byte [eax], 0x40
lea ecx, [eax + 1]
mov byte [ecx], 0xff
mov eax, ebx
inc ecx
mov dword [ebp - 0x40], ecx
mov ecx, dword [ebp + 0x20]
sub eax, dword [ecx + 0x14]
mov ecx, dword [ebp - 0x40]
sar eax, 8
mov byte [ecx], al
mov eax, dword [ebp + 0x20]
mov word [ecx + 2], si
sub bl, byte [eax + 0x14]
mov byte [ecx + 1], bl
add ecx, 4
mov ebx, dword [ebp - 8]
mov dword [ebp - 4], ecx
jmp 0x47633b
mov ecx, dword [ebp - 4]
cmp edx, 0x2e
jg 0x476a82
je 0x476a5c
mov eax, edx
xor edx, edx
sub eax, edx
je 0x476aaf
sub eax, 0x24
je 0x476a47
sub eax, 4
je 0x47638a
sub eax, 1
je 0x476aaf
sub eax, 1
je 0x476386
sub eax, 1
jne 0x476ad0
inc eax
or ecx, 0xffffffff
mov edx, ecx
jmp 0x477175
mov eax, edx
jmp 0x47637c
mov eax, dword [ebp - 0x1c]
inc ebx
mov dword [ebp - 8], ebx
mov dword [ebp - 0x14], eax
mov dword [ebp - 0xc], edx
cmp byte [ebx], 0x3f
jne 0x4768df
inc ebx
mov dword [ebp - 8], ebx
mov dl, byte [ebx]
movzx eax, dl
cmp eax, 0x3c
ja 0x4764e6
je 0x4764b8
cmp eax, 0x21
je 0x4764b1
push 0x23
pop esi
cmp eax, esi
je 0x4764a3
cmp eax, 0x28
je 0x476431
cmp eax, 0x2f
jbe 0x476514
cmp eax, 0x39
jbe 0x4765fd
cmp eax, 0x3a
jne 0x476514
push 0x50
pop eax
inc ebx
mov dword [ebp - 0x30], eax
mov dword [ebp - 8], ebx
mov ecx, dword [ebp - 0xc]
mov edx, dword [ebp - 4]
mov ebx, dword [ebp - 0x30]
xor edi, edi
cmp ebx, 0x4a
mov byte [edx], bl
mov dword [ebp - 0x54], edx
cmovge edi, edx
mov edx, dword [ebp + 0x20]
mov dword [ebp - 0x18], edi
mov esi, dword [edx + 0x2c]
mov dword [ebp - 0x40], esi
cmp ebx, 0x47
je 0x47692d
cmp ebx, 0x48
je 0x47692d
xor eax, eax
jmp 0x476930
inc ebx
mov dword [ebp - 0x30], 0x4b
mov al, byte [ebx]
cmp al, 0x52
jne 0x476451
mov word [ecx + 3], 0xff4c
mov byte [ecx + 5], 0xff
push 3
pop ecx
add dword [ebp - 8], ecx
jmp 0x4763f9
movzx eax, al
cmp byte [eax + 0x685e50], 0
je 0x4763f6
mov dword [ebp - 8], ebx
movzx ecx, byte [ebx]
sub ecx, 0x30
jmp 0x476473
imul ecx, ecx, 0xa
movzx eax, al
add ecx, 0xffffffd0
add ecx, eax
inc ebx
mov dword [ebp - 8], ebx
mov al, byte [ebx]
cmp al, 0x29
jne 0x476468
test ecx, ecx
je 0x4776ca
mov eax, dword [ebp - 4]
inc ebx
mov edx, dword [ebp - 4]
mov dword [ebp - 8], ebx
mov byte [eax + 3], 0x4c
mov eax, ecx
sar eax, 8
mov byte [edx + 4], al
mov byte [edx + 5], cl
jmp 0x476917
inc ebx
mov dword [ebp - 8], ebx
cmp byte [ebx], 0x29
jne 0x4764a3
jmp 0x4762e4
push 0x46
jmp 0x4763ee
inc ebx
mov dword [ebp - 8], ebx
mov al, byte [ebx]
cmp al, 0x21
je 0x4764df
mov edx, dword [ebp - 4]
mov ecx, dword [ebp - 0xc]
cmp al, 0x3d
jne 0x4763fc
push 0x47
pop eax
inc ebx
mov dword [ebp - 0x30], eax
mov dword [ebp - 8], ebx
jmp 0x4763fc
push 0x48
jmp 0x4763ee
sub eax, 0x3d
je 0x4768d8
sub eax, 1
je 0x4768d1
sub eax, 5
je 0x47684f
sub eax, 0xd
je 0x47661e
dec eax
sub eax, 1
je 0x4765f9
xor eax, eax
xor ecx, ecx
mov dword [ebp - 0x14], eax
mov dword [ebp - 0x20], eax
lea eax, [ebp - 0x20]
mov dword [ebp - 0x24], ecx
cmp dl, 0x29
je 0x47658b
cmp dl, 0x3a
je 0x476583
movzx ecx, dl
inc ebx
mov dword [ebp - 8], ebx
cmp ecx, 0x2d
je 0x476579
cmp ecx, 0x55
je 0x476571
cmp ecx, 0x58
je 0x47656c
cmp ecx, 0x69
je 0x476567
cmp ecx, 0x6d
je 0x476562
cmp ecx, 0x73
je 0x47655d
cmp ecx, 0x78
jne 0x47657c
or dword [eax], 8
jmp 0x47657c
or dword [eax], 4
jmp 0x47657c
or dword [eax], 2
jmp 0x47657c
or dword [eax], 1
jmp 0x47657c
or dword [eax], 0x40
jmp 0x47657c
or dword [eax], 0x200
jmp 0x47657c
lea eax, [ebp - 0x24]
mov dl, byte [ebx]
cmp dl, 0x29
jne 0x476529
mov edx, dword [ebp - 0x20]
mov ecx, dword [ebp - 0x24]
jmp 0x47658e
mov edx, dword [ebp - 0x14]
or edx, dword [ebp - 0x1c]
not ecx
and edx, ecx
cmp byte [ebx], 0x29
mov dword [ebp - 0x14], edx
jne 0x4763ec
mov ecx, dword [ebp - 4]
mov eax, edx
xor eax, dword [ebp - 0x1c]
test al, 7
je 0x4765c0
mov al, dl
mov byte [ecx], 0x12
and al, 7
mov byte [ecx + 1], al
add ecx, 2
mov ebx, dword [ebp - 8]
mov dword [ebp - 4], ecx
mov eax, dword [ebp - 0x9c]
xor esi, esi
inc esi
mov dword [ebp - 0x1c], edx
mov dword [eax], edx
mov eax, edx
shr eax, 9
and eax, esi
mov dword [ebp - 0x98], eax
xor eax, esi
mov dword [ebp - 0x94], eax
mov eax, edx
and eax, esi
shl eax, 8
and dword [ebp - 0x18], 0
mov dword [ebp - 0x5c], eax
mov edi, dword [ebp - 0x18]
jmp 0x4762e7
inc ebx
mov dword [ebp - 8], ebx
xor ecx, ecx
jmp 0x47660d
imul eax, ecx, 0xa
lea ecx, [edx - 0x30]
add ecx, eax
inc ebx
mov dword [ebp - 8], ebx
movzx edx, byte [ebx]
test byte [edx + 0x685e50], 4
jne 0x476601
jmp 0x47676d
inc ebx
mov dword [ebp - 8], ebx
mov al, byte [ebx]
cmp al, 0x3c
jne 0x4766e2
mov eax, dword [ebp + 0x20]
inc ebx
mov ecx, ebx
mov dword [ebp - 8], ebx
mov dword [ebp - 0x3c], ecx
mov esi, dword [eax + 0x18]
mov al, byte [ebx]
inc ebx
mov dword [ebp - 8], ebx
cmp al, 0x3e
jne 0x47663b
mov eax, dword [ebp + 0x20]
mov edi, ebx
sub edi, ecx
xor edx, edx
dec edi
mov dword [ebp - 0x24], edx
mov eax, dword [eax + 0x1c]
mov dword [ebp - 0x20], eax
test eax, eax
jle 0x4766b2
push edi
lea eax, [esi + 2]
push eax
push ecx
call fcn.00544eba
add esp, 0xc
test eax, eax
jne 0x47667d
cmp byte [edi + esi + 2], al
je 0x4776d4
or eax, 0xffffffff
test eax, eax
mov eax, dword [ebp + 0x20]
js 0x476696
add esi, dword [eax + 0x20]
mov eax, dword [ebp - 0x24]
mov ecx, dword [ebp - 0x3c]
inc eax
mov dword [ebp - 0x24], eax
cmp eax, dword [ebp - 0x20]
jl 0x47665c
jmp 0x4766af
mov ecx, dword [ebp - 0x20]
mov eax, dword [eax + 0x20]
sub ecx, dword [ebp - 0x24]
imul ecx, eax
add eax, esi
push ecx
push esi
push eax
call fcn.005439e0
add esp, 0xc
mov ecx, dword [ebp - 0x3c]
mov ebx, dword [ebp - 0x58]
push edi
push ecx
mov eax, dword [ebx]
inc eax
sar eax, 8
mov byte [esi], al
mov al, byte [ebx]
inc al
mov byte [esi + 1], al
lea eax, [esi + 2]
push eax
call fcn.005447e0
mov eax, dword [ebp + 0x20]
add esp, 0xc
mov byte [edi + esi + 2], 0
inc dword [eax + 0x1c]
jmp 0x4768f5
cmp al, 0x3d
je 0x4766ee
cmp al, 0x3e
jne 0x4763f6
movzx edx, al
inc ebx
mov eax, dword [ebp + 0x20]
mov ecx, ebx
mov dword [ebp - 0x20], edx
mov dword [ebp - 0x40], ecx
mov eax, dword [eax + 0x18]
mov dword [ebp - 0x24], eax
jmp 0x476706
inc ebx
mov dword [ebp - 8], ebx
cmp byte [ebx], 0x29
jne 0x476705
mov edx, dword [ebp + 0x20]
mov edi, ebx
xor esi, esi
sub edi, ecx
cmp dword [edx + 0x1c], esi
mov edx, dword [ebp - 0x20]
jle 0x47674c
push edi
add eax, 2
push eax
push ecx
call fcn.0056ddc0
add esp, 0xc
test eax, eax
mov eax, dword [ebp - 0x24]
je 0x476746
mov ecx, dword [ebp + 0x20]
add eax, dword [ecx + 0x20]
inc esi
cmp esi, dword [ecx + 0x1c]
mov ecx, dword [ebp - 0x40]
mov dword [ebp - 0x24], eax
jl 0x47671f
mov ebx, dword [ebp - 8]
mov edx, dword [ebp - 0x20]
mov ecx, dword [ebp + 0x20]
cmp esi, dword [ecx + 0x1c]
jge 0x4776f5
movzx ecx, byte [eax + 1]
movzx eax, byte [eax]
shl eax, 8
or ecx, eax
cmp edx, 0x3e
jne 0x476808
mov eax, dword [ebp - 4]
mov edi, eax
mov dword [ebp - 0x18], edi
mov byte [eax], 0
test ecx, ecx
jne 0x476784
mov ecx, dword [ebp + 0x20]
mov ebx, dword [ecx + 0x10]
jmp 0x476796
mov eax, dword [ebp + 0x20]
push ecx
mov ecx, dword [eax + 0x10]
call fcn.00475f37
mov ebx, eax
mov eax, dword [ebp - 4]
pop ecx
test ebx, ebx
je 0x4776ea
movzx edx, byte [ebx + 1]
movzx ecx, byte [ebx + 2]
shl edx, 8
or edx, ecx
jne 0x4767e0
mov esi, dword [ebp + 0x1c]
test esi, esi
je 0x4776df
mov ecx, dword [esi + 4]
cmp ecx, ebx
jb 0x4776df
push 0
mov edx, eax
call fcn.00475f79
pop ecx
test eax, eax
je 0x4767e0
mov esi, dword [esi]
test esi, esi
je 0x4776df
mov eax, dword [ebp - 4]
jmp 0x4767b8
mov edx, dword [ebp + 0x20]
mov eax, ebx
mov ecx, dword [ebp - 4]
sub eax, dword [edx + 0x10]
sub bl, byte [edx + 0x10]
mov byte [ecx], 0x3f
sar eax, 8
mov byte [ecx + 1], al
mov byte [ecx + 2], bl
add ecx, 3
mov ebx, dword [ebp - 8]
mov dword [ebp - 4], ecx
jmp 0x4762e4
mov edx, dword [ebp - 4]
mov eax, ecx
sar eax, 8
mov edi, edx
xor esi, esi
mov dword [ebp - 0x18], edi
inc esi
mov byte [edx], 0x3e
mov byte [edx + 1], al
mov eax, esi
mov byte [edx + 2], cl
add edx, 3
mov ebx, dword [ebp - 8]
mov dword [ebp - 4], edx
mov edx, esi
shl edx, cl
cmp ecx, 0x20
cmovl eax, edx
mov edx, dword [ebp + 0x20]
or dword [edx + 0x28], eax
mov eax, dword [ebp - 0x10]
cmp ecx, dword [edx + 0x24]
jle 0x476847
mov dword [edx + 0x24], ecx
mov ecx, dword [ebp - 4]
jmp 0x4762ea
xor esi, esi
mov byte [ecx], 0x40
mov ebx, dword [ebp - 8]
inc esi
mov dword [ebp - 0x44], ecx
xor eax, eax
inc ecx
mov dword [ebp - 0x84], esi
inc ebx
mov dword [ebp - 4], ecx
mov dword [ebp - 8], ebx
movzx ecx, byte [ebx]
test byte [ecx + 0x685e50], 4
je 0x47689a
imul eax, eax, 0xa
add ecx, 0xffffffd0
add eax, ecx
inc ebx
mov dword [ebp - 8], ebx
movzx ecx, byte [ebx]
test byte [ecx + 0x685e50], 4
jne 0x476877
cmp eax, 0xff
jg 0x477700
mov ecx, dword [ebp - 4]
mov edx, dword [ebp + 0x20]
mov byte [ecx], al
mov eax, dword [ebp - 8]
sub eax, dword [edx + 0x14]
inc eax
sar eax, 8
mov byte [ecx + 1], al
mov al, byte [ebp - 8]
sub al, byte [edx + 0x14]
xor edx, edx
inc al
mov word [ecx + 3], dx
mov byte [ecx + 2], al
add ecx, 5
mov dword [ebp - 0x18], edx
mov ebx, dword [ebp - 8]
mov dword [ebp - 4], ecx
jmp 0x4765f1
push 0x4a
jmp 0x4763ee
push 0x45
jmp 0x4763ee
test eax, 0x1000
je 0x4768f2
mov dword [ebp - 0x30], 0x50
jmp 0x4763f6
mov ebx, dword [ebp - 0x58]
inc dword [ebx]
mov eax, dword [ebx]
mov edx, dword [ebp - 4]
cmp eax, 0x64
jle 0x47691f
sar eax, 8
mov byte [edx + 4], al
mov al, byte [ebx]
mov dword [ebp - 0x30], 0xb5
mov byte [edx + 3], 0x4f
mov byte [edx + 5], al
push 3
pop ecx
jmp 0x4763fc
lea ecx, [eax + 0x50]
mov dword [ebp - 0x30], ecx
mov ecx, dword [ebp - 0xc]
jmp 0x4763fc
xor eax, eax
inc eax
mov ebx, dword [ebp + 0x10]
push edx
push dword [ebp + 0x1c]
lea edx, [ebp - 0x88]
push edx
lea edx, [ebp - 0x90]
push edx
mov edx, dword [ebp - 0x1c]
push ecx
mov ecx, dword [ebp - 0x14]
and edx, 7
push eax
push ebx
lea eax, [ebp - 8]
push eax
lea eax, [ebp - 0x54]
push eax
push dword [ebp - 0x58]
call fcn.00477767
add esp, 0x28
test eax, eax
je 0x47771c
cmp dword [ebp - 0x30], 0x4b
jne 0x4769b0
mov esi, dword [ebp - 4]
xor edx, edx
movzx ecx, byte [esi + 1]
inc edx
movzx eax, byte [esi + 2]
shl ecx, 8
or ecx, eax
add esi, ecx
cmp byte [esi], 0x42
jne 0x476977
mov esi, dword [ebp - 0x40]
cmp edx, 2
jg 0x47770b
cmp edx, 1
jne 0x4769b0
or ecx, 0xffffffff
mov eax, ecx
mov dword [ebp - 0x90], ecx
mov dword [ebp - 0x88], eax
jmp 0x4769bc
mov eax, dword [ebp - 0x88]
mov ecx, dword [ebp - 0x90]
mov edx, dword [ebp - 0x2c]
and dword [ebp - 0x8c], 0
mov ebx, dword [ebp - 0x30]
mov dword [ebp - 0x34], edx
mov edx, dword [ebp - 0x28]
mov dword [ebp - 0x48], edx
cmp ebx, 0x50
jge 0x4769e8
cmp ebx, 0x4a
je 0x4769e8
cmp ebx, 0x4b
je 0x4769e8
cmp ebx, 0x45
jne 0x476a27
jmp 0x476a20
cmp edx, 0xfffffffe
jne 0x476a0e
test ecx, ecx
js 0x476a03
mov dword [ebp - 0x28], ecx
or ecx, 0xffffffff
mov dword [ebp - 0x8c], 1
jmp 0x476a09
or ecx, 0xffffffff
mov dword [ebp - 0x28], ecx
mov dword [ebp - 0x48], ecx
jmp 0x476a20
test ecx, ecx
js 0x476a20
test eax, eax
jns 0x476a24
mov eax, ecx
or eax, esi
mov dword [ebp - 0x88], eax
test eax, eax
js 0x476a27
mov dword [ebp - 0x2c], eax
mov ebx, dword [ebp - 8]
mov ecx, dword [ebp - 0x54]
mov dword [ebp - 4], ecx
cmp byte [ebx], 0x29
je 0x4762e4
mov eax, dword [ebp + 0x10]
mov dword [eax], 0xe
jmp 0x477759
mov byte [ecx], 0x14
inc ecx
mov dword [ebp - 0x18], edx
mov ebx, dword [ebp - 8]
mov edi, dword [ebp - 0x18]
mov dword [ebp - 4], ecx
jmp 0x4762e4
mov edx, dword [ebp - 0x28]
mov edi, ecx
push 0xffffffffffffffff
cmp edx, 0xfffffffe
mov byte [ecx], 0xb
pop eax
cmove edx, eax
mov eax, dword [ebp - 0x2c]
mov dword [ebp - 0x28], edx
mov dword [ebp - 0x48], edx
mov dword [ebp - 0x34], eax
mov dword [ebp - 0x18], edi
inc ecx
jmp 0x4767fd
mov eax, edx
sub eax, 0x3f
je 0x477170
sub eax, 0x1c
je 0x476c36
sub eax, 1
je 0x476b2b
dec eax
sub eax, 1
je 0x476b0c
sub eax, 0x1d
je 0x476acc
sub eax, 1
jne 0x476ad0
mov eax, dword [ebp + 0x14]
mov edx, dword [ebp - 0x28]
mov dword [eax], edx
mov eax, dword [ebp + 0x18]
mov edx, dword [ebp - 0x2c]
mov dword [eax], edx
mov eax, dword [ebp + 8]
mov dword [eax], ecx
xor eax, eax
inc eax
jmp 0x47775b
test esi, esi
jne 0x476ade
xor esi, esi
inc esi
mov ecx, dword [ebp - 0x14]
mov ebx, dword [ebp - 0x2c]
jmp 0x476bf1
mov esi, dword [ebp + 0x10]
lea eax, [ebp - 0x4c]
push esi
push eax
lea ecx, [ebx + 1]
lea edx, [ebp - 0x38]
call fcn.00475c5b
cmp dword [esi], 0
mov ebx, eax
pop ecx
pop ecx
mov dword [ebp - 8], ebx
jne 0x477759
mov edx, dword [ebp - 0x4c]
mov eax, dword [ebp - 0x38]
jmp 0x47717e
test byte [ebp - 0x1c], 2
je 0x476b21
mov eax, dword [ebp - 0x28]
cmp eax, 0xfffffffe
push 0xffffffffffffffff
pop edx
cmove eax, edx
mov dword [ebp - 0x28], eax
xor edi, edi
mov byte [ecx], 0x13
jmp 0x476a79
mov eax, dword [ebp - 0x58]
lea ecx, [ebp - 8]
mov edx, dword [ebp + 0x10]
push 0
push dword [ebp - 0x1c]
mov dword [ebp - 0x60], ebx
push dword [eax]
call fcn.00475a75
add esp, 0xc
test eax, eax
jns 0x476be9
mov ecx, eax
neg ecx
cmp ecx, 0x13
jne 0x476b7b
mov ebx, dword [ebp - 8]
cmp byte [ebx + 1], 0x5c
jne 0x476b6e
cmp byte [ebx + 2], 0x45
jne 0x476b6e
add ebx, 2
jmp 0x4762e1
xor esi, esi
inc esi
mov eax, esi
mov dword [ebp - 0x10], eax
jmp 0x476847
mov edx, dword [ebp - 0x28]
cmp edx, 0xfffffffe
jne 0x476b94
cmp ecx, 4
jle 0x476b94
push 0xffffffffffffffff
cmp ecx, 0x10
pop ebx
cmovl edx, ebx
mov dword [ebp - 0x28], edx
mov dword [ebp - 0x48], edx
mov edx, dword [ebp - 0x2c]
mov dword [ebp - 0x34], edx
cmp ecx, 0x14
jl 0x476bca
mov edx, dword [ebp - 4]
mov edi, edx
push 0xffffffffffffffec
pop ecx
sub ecx, eax
mov dword [ebp - 0x18], edi
mov byte [edx], 0x3e
mov eax, ecx
inc edx
sar eax, 8
mov dword [ebp - 4], edx
mov byte [edx + 1], cl
mov ecx, edx
mov byte [edx], al
add ecx, 2
jmp 0x4767fd
cmp ecx, 4
jle 0x476bdb
cmp ecx, 0x10
jge 0x476bdb
mov ecx, dword [ebp - 4]
mov edi, ecx
jmp 0x476be0
mov ecx, dword [ebp - 4]
xor edi, edi
neg al
mov byte [ecx], al
jmp 0x476a79
mov ebx, dword [ebp - 0x2c]
xor esi, esi
inc esi
mov cl, al
mov edx, dword [ebp - 4]
mov edi, edx
test byte [ebp - 0x1c], 1
mov dword [ebp - 0x34], ebx
setne al
mov dword [ebp - 0x18], edi
add al, 0x15
mov byte [edx], al
mov byte [edx + 1], cl
add edx, 2
mov ebx, dword [ebp - 8]
mov dword [ebp - 4], edx
mov edx, dword [ebp - 0x28]
cmp edx, 0xfffffffe
jne 0x4770f8
or eax, 0xffffffff
mov dword [ebp - 0x48], eax
movzx eax, cl
or eax, dword [ebp - 0x5c]
mov ecx, dword [ebp - 4]
mov dword [ebp - 0x28], eax
jmp 0x4762e7
mov al, byte [ebx + 1]
mov dword [ebp - 0x18], ecx
cmp al, 0x3a
je 0x476c48
cmp al, 0x2e
je 0x476c48
cmp al, 0x3d
jne 0x476c5e
push dword [ebp + 0x20]
lea edx, [ebp - 0x60]
mov ecx, ebx
call fcn.0047609d
pop ecx
test eax, eax
jne 0x477734
inc ebx
mov dword [ebp - 8], ebx
movzx esi, byte [ebx]
cmp esi, 0x5e
jne 0x476c7a
inc ebx
mov dword [ebp - 0x3c], 1
mov dword [ebp - 8], ebx
movzx esi, byte [ebx]
jmp 0x476c7e
and dword [ebp - 0x3c], 0
or eax, 0xffffffff
lea edi, [ebp - 0x80]
xor edx, edx
mov dword [ebp - 0xc], eax
push 8
pop ecx
xor eax, eax
mov dword [ebp - 0x14], edx
rep stosd dword es:[edi], eax
mov ecx, dword [ebp - 0x10]
mov dword [ebp - 0x40], edx
mov edi, edx
mov dword [ebp - 0x20], edi
test ecx, ecx
je 0x476cc0
cmp esi, 0x5c
jne 0x47709e
cmp byte [ebx + 1], 0x45
jne 0x47709e
xor ecx, ecx
inc ebx
mov dword [ebp - 0x10], ecx
jmp 0x476dfa
cmp esi, 0x5b
jne 0x476e52
mov al, byte [ebx + 1]
mov byte [ebp - 0x4d], al
cmp al, 0x3a
je 0x476cdf
cmp al, 0x2e
je 0x476cdf
cmp al, 0x3d
jne 0x476e86
push dword [ebp + 0x20]
lea edx, [ebp - 0x60]
mov ecx, ebx
call fcn.0047609d
pop ecx
test eax, eax
je 0x476e86
mov eax, dword [ebp + 0x20]
and dword [ebp - 0x20], 0
cmp byte [ebp - 0x4d], 0x3a
mov eax, dword [eax + 8]
mov dword [ebp - 0x24], eax
jne 0x477721
add ebx, 2
mov dword [ebp - 8], ebx
cmp byte [ebx], 0x5e
jne 0x476d22
inc ebx
mov dword [ebp - 0x20], 1
mov dword [ebp - 8], ebx
mov edi, dword [ebp - 0x60]
sub edi, ebx
xor esi, esi
movzx eax, byte [esi + 0x686148]
cmp edi, eax
jne 0x476d49
push edi
push dword [esi*4 + 0x686110]
push ebx
call fcn.0056ddc0
add esp, 0xc
test eax, eax
je 0x476d58
inc esi
cmp byte [esi + 0x686148], 0
jne 0x476d29
or eax, 0xffffffff
mov esi, eax
test esi, esi
js 0x477713
test byte [ebp - 0x1c], 1
je 0x476d6e
xor eax, eax
cmp esi, 2
cmovle esi, eax
imul ebx, esi, 3
xor edi, edi
push 5
push str.blank
push dword [ebp - 8]
call fcn.0056ddc0
add esp, 0xc
lea ecx, [edi + ebx]
mov edx, dword [ecx*4 + 0x686010]
mov esi, eax
neg esi
sbb esi, esi
inc esi
test edx, edx
js 0x476ded
add edx, dword [ebp - 0x24]
xor ecx, ecx
cmp dword [ebp - 0x20], ecx
je 0x476dd2
test edi, edi
jne 0x476db9
mov al, byte [edx + ecx]
not al
or byte [ebp + ecx - 0x80], al
inc ecx
cmp ecx, 0x20
jl 0x476da8
jmp 0x476dc8
mov al, byte [edx + ecx]
not al
and byte [ebp + ecx - 0x80], al
inc ecx
cmp ecx, 0x20
jl 0x476db9
test esi, esi
je 0x476de7
or byte [ebp - 0x7f], 0x3c
jmp 0x476de7
mov al, byte [edx + ecx]
or byte [ebp + ecx - 0x80], al
inc ecx
cmp ecx, 0x20
jl 0x476dd2
test esi, esi
je 0x476de7
and byte [ebp - 0x7f], 0xc3
inc edi
cmp edi, 3
jl 0x476d73
mov ebx, dword [ebp - 0x60]
push 0xa
pop edx
inc ebx
mov dword [ebp - 0x14], edx
mov ecx, dword [ebp - 0x10]
mov eax, dword [ebp - 0xc]
inc ebx
mov dword [ebp - 8], ebx
movzx esi, byte [ebx]
cmp esi, 0x5d
jne 0x476c96
test ecx, ecx
jne 0x476c96
xor esi, esi
inc esi
cmp edx, esi
jne 0x477113
mov ebx, dword [ebp - 0x2c]
mov dword [ebp - 0x34], ebx
cmp dword [ebp - 0x3c], ecx
je 0x476bef
mov edx, dword [ebp - 0x28]
cmp edx, 0xfffffffe
push 0xffffffffffffffff
pop ecx
cmove edx, ecx
mov ecx, dword [ebp - 4]
mov dword [ebp - 0x28], edx
mov dword [ebp - 0x48], edx
mov byte [ecx], 0x17
mov byte [ecx + 1], al
add ecx, 2
jmp 0x4768c6
cmp esi, 0x5c
jne 0x476e86
mov eax, dword [ebp - 0x58]
lea ecx, [ebp - 8]
mov ebx, dword [ebp + 0x10]
mov edx, ebx
push 1
push dword [ebp - 0x1c]
push dword [eax]
call fcn.00475a75
mov esi, eax
add esp, 0xc
mov ecx, esi
neg ecx
cmp ecx, 4
jne 0x476f5f
push 8
pop esi
mov ebx, dword [ebp - 8]
mov ecx, dword [ebp - 0x1c]
cmp byte [ebx + 1], 0x2d
jne 0x47709e
cmp byte [ebx + 2], 0x5d
je 0x47709e
add ebx, 2
mov dword [ebp - 8], ebx
mov dword [ebp - 0x34], ebx
movzx edi, byte [ebx]
cmp edi, 0x5c
jne 0x476edc
mov eax, dword [ebp - 0x58]
mov edx, dword [ebp + 0x10]
push 1
push ecx
push dword [eax]
lea ecx, [ebp - 8]
call fcn.00475a75
mov edi, eax
add esp, 0xc
test edi, edi
jns 0x476ed6
cmp edi, 0xfffffffc
jne 0x477089
push 8
pop edi
mov ebx, dword [ebp - 8]
mov dword [ebp - 0x34], ebx
cmp edi, esi
je 0x47709b
mov edx, dword [ebp - 0x40]
mov dword [ebp - 0x14], edx
cmp esi, edi
jg 0x476df7
mov eax, dword [ebp - 0x1c]
inc edx
and eax, 1
mov dword [ebp - 0x40], eax
mov eax, edi
mov ebx, dword [ebp - 0x40]
sub eax, esi
add edx, eax
mov dword [ebp - 0x14], edx
mov edx, esi
test edx, edx
jns 0x476f11
add edx, 7
sar edx, 3
movzx ecx, byte [ebp + edx - 0x80]
mov eax, esi
and eax, 7
bts ecx, eax
mov byte [ebp + edx - 0x80], cl
test ebx, ebx
je 0x476f47
mov eax, dword [ebp + 0x20]
mov eax, dword [eax + 4]
movzx edx, byte [esi + eax]
mov ecx, edx
and edx, 7
shr ecx, 3
movzx eax, byte [ebp + ecx - 0x80]
bts eax, edx
mov byte [ebp + ecx - 0x80], al
mov eax, esi
inc esi
mov dword [ebp - 0xc], eax
cmp esi, edi
jle 0x476f08
mov ebx, dword [ebp - 0x34]
mov edx, dword [ebp - 0x14]
mov ecx, dword [ebp - 0x10]
jmp 0x476dfd
cmp ecx, 0xf
jne 0x476f6b
push 0x58
jmp 0x476e82
cmp ecx, 0x13
jne 0x476f98
mov ebx, dword [ebp - 8]
cmp byte [ebx + 1], 0x5c
jne 0x476f8a
cmp byte [ebx + 2], 0x45
jne 0x476f8a
add ebx, 2
mov edx, dword [ebp - 0x14]
jmp 0x476df7
mov edx, dword [ebp - 0x14]
xor ecx, ecx
inc ecx
mov dword [ebp - 0x10], ecx
jmp 0x476dfa
test esi, esi
jns 0x476e83
mov eax, dword [ebp + 0x20]
mov edx, dword [ebp - 0x14]
add edx, 2
mov dword [ebp - 0x14], edx
mov esi, dword [eax + 8]
sub ecx, 5
je 0x477072
sub ecx, 1
je 0x477060
sub ecx, 1
je 0x477041
sub ecx, 1
je 0x47701e
sub ecx, 1
je 0x477007
sub ecx, 1
je 0x476fec
mov ecx, dword [ebp - 0x1c]
test cl, 0x40
jne 0x47772c
mov ebx, dword [ebp - 8]
movzx esi, byte [ebx]
jmp 0x476e89
xor ecx, ecx
mov al, byte [esi + ecx + 0xa0]
or byte [ebp + ecx - 0x80], al
inc ecx
cmp ecx, 0x20
jl 0x476fee
mov ebx, dword [ebp - 8]
jmp 0x476df7
xor ecx, ecx
mov al, byte [esi + ecx + 0xa0]
not al
or byte [ebp + ecx - 0x80], al
inc ecx
cmp ecx, 0x20
jl 0x477009
jmp 0x476fff
lea eax, [ebp - 0x80]
xor edx, edx
sub esi, eax
lea ecx, [ebp - 0x80]
add ecx, edx
mov al, byte [esi + ecx]
or byte [ecx], al
inc edx
cmp edx, 0x20
jl 0x477025
and byte [ebp - 0x7f], 0xf7
mov ebx, dword [ebp - 8]
jmp 0x476f82
lea eax, [ebp - 0x80]
xor edx, edx
sub esi, eax
lea ecx, [ebp - 0x80]
add ecx, edx
mov al, byte [esi + ecx]
not al
or byte [ecx], al
inc edx
cmp edx, 0x20
jl 0x477048
or byte [ebp - 0x7f], 8
jmp 0x477039
xor ecx, ecx
mov al, byte [esi + ecx + 0x40]
or byte [ebp + ecx - 0x80], al
inc ecx
cmp ecx, 0x20
jl 0x477062
jmp 0x476fff
xor ecx, ecx
mov al, byte [esi + ecx + 0x40]
not al
or byte [ebp + ecx - 0x80], al
inc ecx
cmp ecx, 0x20
jl 0x477074
jmp 0x476fff
cmp edi, 0xfffffff1
jne 0x477095
push 0x58
jmp 0x476ed5
add ebx, 0xfffffffe
mov dword [ebp - 8], ebx
mov edi, dword [ebp - 0x20]
mov edx, esi
test edx, edx
jns 0x4770a7
add edx, 7
sar edx, 3
movzx ecx, byte [ebp + edx - 0x80]
mov eax, esi
and eax, 7
bts ecx, eax
test byte [ebp - 0x1c], 1
mov byte [ebp + edx - 0x80], cl
je 0x4770e8
mov eax, dword [ebp + 0x20]
mov eax, dword [eax + 4]
movzx esi, byte [esi + eax]
mov edx, esi
test edx, edx
jns 0x4770d4
add edx, 7
sar edx, 3
movzx ecx, byte [ebp + edx - 0x80]
mov eax, esi
and eax, 7
bts ecx, eax
mov byte [ebp + edx - 0x80], cl
lea edx, [edi + 1]
mov eax, esi
mov dword [ebp - 0x14], edx
mov dword [ebp - 0xc], eax
jmp 0x476f57
mov ecx, dword [ebp - 4]
mov eax, dword [ebp + 0x20]
mov dword [ebp - 0x48], edx
movzx edx, byte [ecx - 1]
or edx, dword [eax + 0x2c]
or edx, dword [ebp - 0x5c]
mov dword [ebp - 0x2c], edx
jmp 0x4762e7
mov edx, dword [ebp - 0x28]
cmp edx, 0xfffffffe
push 0xffffffffffffffff
pop eax
cmove edx, eax
cmp dword [ebp - 0x3c], 0
mov eax, dword [ebp - 0x2c]
mov dword [ebp - 0x34], eax
mov eax, dword [ebp - 4]
mov dword [ebp - 0x28], edx
mov dword [ebp - 0x48], edx
je 0x477154
mov byte [eax], 0x3c
lea edx, [ebp - 0x80]
inc eax
push 0x20
mov dword [ebp - 4], eax
mov ecx, eax
sub edx, eax
pop esi
mov al, byte [edx + ecx]
not al
mov byte [ecx], al
inc ecx
sub esi, 1
jne 0x477145
jmp 0x477165
mov byte [eax], 0x3b
lea esi, [ebp - 0x80]
inc eax
push 8
pop ecx
mov edi, eax
mov dword [ebp - 4], eax
rep movsd dword es:[edi], dword [esi]
mov ecx, dword [ebp - 4]
add ecx, 0x20
jmp 0x476a4e
xor edx, edx
xor eax, eax
inc edx
mov esi, dword [ebp + 0x10]
mov dword [ebp - 0x38], eax
mov dword [ebp - 0x4c], edx
mov dword [ebp - 0x14], edx
test edi, edi
je 0x477753
test eax, eax
jne 0x477199
mov ecx, dword [ebp - 0x48]
mov dword [ebp - 0x28], ecx
mov ecx, dword [ebp - 0x34]
mov dword [ebp - 0x2c], ecx
xor esi, esi
mov dword [ebp - 0x54], edi
cmp eax, edx
mov dword [ebp - 0x20], esi
mov ecx, 0x200
lea eax, [ebx + 1]
cmove ecx, esi
and dword [ebp - 0x40], esi
mov dword [ebp - 0xa0], ecx
mov cl, byte [eax]
cmp cl, 0x2b
jne 0x4771ca
and dword [ebp - 0xc], esi
mov dword [ebp - 0x40], 1
jmp 0x4771d8
cmp cl, 0x3f
jne 0x4771df
mov ecx, dword [ebp - 0x94]
mov dword [ebp - 0xc], ecx
mov ebx, eax
mov dword [ebp - 8], ebx
jmp 0x4771e8
mov eax, dword [ebp - 0x98]
mov dword [ebp - 0xc], eax
cmp byte [edi], 0x3f
jne 0x477238
mov ebx, dword [ebp - 0x18]
push 3
push ebx
lea eax, [ebx + 3]
push eax
call fcn.005439e0
mov edx, dword [ebp - 4]
add esp, 0xc
mov edi, dword [ebp - 0x18]
add edx, 3
mov ecx, edx
mov byte [ebx], 0x50
sub ecx, ebx
mov dword [ebp - 4], edx
sar ecx, 8
mov al, dl
mov byte [ebx + 1], cl
sub al, bl
mov byte [ebx + 2], al
mov byte [edx], 0x42
mov byte [edx + 1], cl
mov ecx, edx
mov edx, dword [ebp - 0x14]
mov byte [ecx + 2], al
add ecx, 3
mov ebx, dword [ebp - 8]
mov dword [ebp - 4], ecx
jmp 0x47723b
mov ecx, dword [ebp - 4]
mov al, byte [edi]
cmp al, 0x15
je 0x47757a
cmp al, 0x16
je 0x47757a
cmp al, 0x17
jne 0x477263
movzx ecx, byte [edi + 1]
push 9
pop esi
mov dword [ebp - 0x20], esi
mov dword [ebp - 0x14], ecx
jmp 0x477595
cmp al, 0x10
jae 0x47726e
push 0x12
movzx ecx, al
jmp 0x477257
cmp al, 0x3b
je 0x4774ea
cmp al, 0x3c
je 0x4774ea
cmp al, 0x3e
je 0x4774ea
cmp al, 0x50
jae 0x477296
cmp al, 0x4a
je 0x477296
cmp al, 0x4b
jne 0x477748
xor eax, eax
mov esi, ecx
sub esi, dword [ebp - 0x18]
xor edi, edi
mov dword [ebp - 0x24], eax
or eax, 0xffffffff
mov dword [ebp - 0x20], edi
mov dword [ebp - 0x3c], esi
cmp edx, eax
jne 0x4772d3
mov esi, dword [ebp - 0x18]
movzx ecx, byte [esi + 1]
movzx eax, byte [esi + 2]
shl ecx, 8
or ecx, eax
add esi, ecx
cmp byte [esi], 0x42
jne 0x4772b2
mov ecx, dword [ebp - 4]
mov edi, ecx
sub edi, esi
mov esi, dword [ebp - 0x3c]
mov dword [ebp - 0x20], edi
mov eax, dword [ebp - 0x38]
test eax, eax
jne 0x477362
test edx, edx
jne 0x4772ea
mov ecx, dword [ebp - 0x18]
jmp 0x4774f0
push dword [ebp + 0x20]
mov ebx, dword [ebp - 0x18]
xor eax, eax
inc eax
mov byte [ecx], 0
push ecx
mov ecx, ebx
cmp edx, eax
jg 0x477323
mov edx, eax
call fcn.004760dc
push dword [ebp - 0x3c]
lea esi, [ebx + 1]
push ebx
push esi
call fcn.005439e0
mov al, byte [ebp - 0xc]
add esp, 0x14
inc dword [ebp - 4]
add al, 0x4d
mov byte [ebx], al
mov dword [ebp - 0x18], esi
jmp 0x477359
push 4
pop edx
call fcn.004760dc
push esi
lea eax, [ebx + 4]
push ebx
push eax
call fcn.005439e0
mov al, byte [ebp - 0xc]
add esp, 0x14
add dword [ebp - 4], 4
add al, 0x4d
mov byte [ebx], al
mov byte [ebx + 1], 0x50
add ebx, 2
mov dword [ebp - 0x24], ebx
mov word [ebx], 0
add ebx, 2
mov dword [ebp - 0x18], ebx
mov edx, dword [ebp - 0x14]
mov ebx, dword [ebp - 8]
dec edx
jmp 0x4773b7
xor esi, esi
inc esi
cmp eax, esi
jle 0x4773b1
cmp dword [ebp - 0x8c], 0
je 0x477381
mov edi, dword [ebp - 0x2c]
test edi, edi
cmovs edi, dword [ebp - 0x28]
mov dword [ebp - 0x2c], edi
mov edi, dword [ebp - 0x20]
cmp eax, esi
jle 0x4773b1
mov edi, dword [ebp - 0x3c]
lea esi, [eax - 1]
push edi
push dword [ebp - 0x18]
push ecx
call fcn.005447e0
mov ecx, dword [ebp - 4]
add esp, 0xc
add ecx, edi
mov dword [ebp - 4], ecx
sub esi, 1
jne 0x47738b
mov ebx, dword [ebp - 8]
mov edx, dword [ebp - 0x14]
mov edi, dword [ebp - 0x20]
mov eax, dword [ebp - 0x38]
test edx, edx
jle 0x4773bc
sub edx, eax
mov dword [ebp - 0x4c], edx
test edx, edx
js 0x4774db
mov ecx, dword [ebp - 4]
lea esi, [edx - 1]
test esi, esi
js 0x47742b
mov eax, dword [ebp - 0xc]
mov ebx, dword [ebp - 0x3c]
add al, 0x4d
mov dword [ebp - 0xc], eax
mov byte [ecx], al
inc ecx
mov dword [ebp - 4], ecx
test esi, esi
je 0x47740b
mov edx, dword [ebp - 0x24]
mov byte [ecx], 0x50
inc ecx
mov dword [ebp - 4], ecx
sub ecx, edx
mov edi, dword [ebp - 4]
neg edx
mov dword [ebp - 0x24], edi
sbb edx, edx
and ecx, edx
mov eax, ecx
mov byte [edi + 1], cl
sar eax, 8
mov ecx, edi
add ecx, 2
mov byte [edi], al
mov dword [ebp - 4], ecx
push ebx
push dword [ebp - 0x18]
push ecx
call fcn.005447e0
mov ecx, dword [ebp - 4]
add esp, 0xc
mov eax, dword [ebp - 0xc]
add ecx, ebx
sub esi, 1
mov dword [ebp - 4], ecx
jns 0x4773d7
mov ebx, dword [ebp - 8]
mov esi, dword [ebp - 0x24]
test esi, esi
je 0x477474
mov ebx, ecx
mov edx, ecx
sub ebx, esi
inc ebx
sub edx, ebx
movzx ecx, byte [edx + 1]
movzx eax, byte [edx + 2]
shl ecx, 8
or ecx, eax
mov eax, ebx
sub esi, ecx
neg ecx
sbb ecx, ecx
sar eax, 8
and esi, ecx
mov ecx, dword [ebp - 4]
mov byte [ecx], 0x42
mov byte [ecx + 1], al
mov byte [ecx + 2], bl
add ecx, 3
mov dword [ebp - 4], ecx
mov byte [edx + 1], al
mov byte [edx + 2], bl
test esi, esi
jne 0x477432
mov ebx, dword [ebp - 8]
mov ecx, dword [ebp - 4]
cmp dword [ebp - 0x40], 0
je 0x4774c5
mov eax, dword [ebp - 0x54]
mov ebx, ecx
sub ebx, eax
push ebx
push eax
add eax, 3
push eax
call fcn.005439e0
mov eax, dword [ebp - 0x54]
add ebx, 3
mov edx, dword [ebp - 4]
mov ecx, ebx
sar ecx, 8
add esp, 0xc
mov byte [eax], 0x4a
mov byte [edx + 3], 0x42
mov byte [edx + 4], cl
mov byte [edx + 5], bl
add edx, 6
mov eax, dword [ebp - 0x54]
mov dword [ebp - 4], edx
mov byte [eax + 1], cl
mov eax, dword [ebp - 0x54]
mov byte [eax + 2], bl
mov ebx, dword [ebp - 8]
mov ecx, dword [ebp - 4]
mov edx, dword [ebp + 0x20]
xor edi, edi
mov eax, dword [ebp - 0xa0]
mov dword [ebp - 0x18], edi
or dword [edx + 0x2c], eax
jmp 0x4762e4
mov ecx, dword [ebp - 0xc]
mov eax, dword [ebp - 4]
add cl, 0x43
sub eax, edi
mov byte [eax], cl
jmp 0x477471
test edx, edx
jne 0x4774f5
mov ecx, edi
mov dword [ebp - 4], ecx
jmp 0x4774c5
xor eax, eax
inc eax
cmp edx, eax
je 0x477502
mov ecx, dword [ebp + 0x20]
mov dword [ecx + 0x30], eax
mov ecx, dword [ebp - 0x38]
test ecx, ecx
jne 0x477528
or ebx, 0xffffffff
cmp edx, ebx
jne 0x477517
mov eax, dword [ebp - 0xc]
add al, 0x33
jmp 0x477520
cmp edx, eax
jne 0x47753a
mov eax, dword [ebp - 0xc]
add al, 0x37
mov ecx, dword [ebp - 4]
mov byte [ecx], al
inc ecx
jmp 0x47756f
cmp ecx, eax
jne 0x47753a
or eax, 0xffffffff
cmp edx, eax
jne 0x47753a
mov eax, dword [ebp - 0xc]
add al, 0x35
jmp 0x477520
mov ebx, dword [ebp - 4]
mov eax, dword [ebp - 0xc]
add al, 0x39
mov byte [ebx], al
inc ebx
mov eax, ecx
mov dword [ebp - 4], ebx
sar eax, 8
mov byte [ebx], al
xor eax, eax
mov byte [ebx + 1], cl
mov ecx, ebx
or ebx, 0xffffffff
cmp edx, ebx
cmove edx, eax
mov eax, edx
mov byte [ecx + 3], dl
sar eax, 8
mov byte [ecx + 2], al
add ecx, 4
mov dword [ebp - 0x4c], edx
mov ebx, dword [ebp - 8]
mov dword [ebp - 4], ecx
jmp 0x477477
cmp dword [ebp - 0x38], 1
movzx ecx, byte [ecx - 1]
mov dword [ebp - 0x14], ecx
jle 0x477595
mov edi, dword [ebp + 0x20]
mov edi, dword [edi + 0x2c]
or edi, ecx
or edi, dword [ebp - 0x5c]
mov dword [ebp - 0x2c], edi
cmp al, 0xe
je 0x4775a4
cmp al, 0xd
je 0x4775a4
or eax, 0xffffffff
mov ecx, eax
jmp 0x4775ab
mov eax, dword [ebp - 0x18]
movzx ecx, byte [eax + 1]
mov edi, dword [ebp - 0x18]
mov eax, dword [ebp - 4]
mov dword [ebp - 4], edi
mov edi, dword [ebp - 0x38]
test edx, edx
je 0x4774c2
cmp edx, 1
je 0x4775d1
mov edi, dword [ebp + 0x20]
mov dword [edi + 0x30], 1
mov edi, dword [ebp - 0x38]
add dword [ebp - 0xc], esi
test edi, edi
jne 0x477602
or eax, 0xffffffff
cmp edx, eax
mov eax, dword [ebp - 0xc]
jne 0x4775ef
add al, 0x18
mov ecx, dword [ebp - 0x18]
mov byte [ecx], al
inc ecx
jmp 0x4776c0
mov ecx, dword [ebp - 0x18]
mov ebx, dword [ebp - 0x14]
cmp edx, 1
jne 0x4776a9
add al, 0x1c
jmp 0x477681
xor esi, esi
inc esi
cmp edi, esi
jne 0x477641
or ecx, 0xffffffff
cmp edx, ecx
jne 0x477617
mov eax, dword [ebp - 0xc]
add al, 0x1a
jmp 0x4775e4
mov ecx, eax
mov dword [ebp - 4], ecx
cmp edx, esi
je 0x4774c5
mov ecx, dword [ebp - 0xc]
add cl, 0x1e
mov byte [eax], cl
lea ecx, [eax + 1]
lea eax, [edx - 1]
sar eax, 8
dec dl
mov byte [ecx], al
mov byte [ecx + 1], dl
add ecx, 2
jmp 0x4776c0
mov ebx, dword [ebp - 0x18]
mov eax, dword [ebp - 0x20]
add al, 0x20
mov byte [ebx], al
lea esi, [ebx + 1]
mov eax, edi
sar eax, 8
mov byte [esi], al
mov eax, dword [ebp - 0x38]
mov byte [esi + 1], al
add esi, 2
mov dword [ebp - 4], esi
test edx, edx
jns 0x477686
mov ebx, dword [ebp - 0x14]
mov byte [esi], bl
inc esi
mov dword [ebp - 4], esi
test ecx, ecx
js 0x477679
mov byte [esi], cl
mov ecx, esi
inc ecx
jmp 0x47767c
mov ecx, dword [ebp - 4]
mov eax, dword [ebp - 0xc]
add al, 0x18
mov byte [ecx], al
inc ecx
jmp 0x4776c3
cmp edx, eax
je 0x4776bd
mov ebx, dword [ebp - 0x14]
mov byte [esi], bl
inc esi
mov dword [ebp - 4], esi
test ecx, ecx
js 0x47769e
mov byte [esi], cl
mov ecx, esi
inc ecx
jmp 0x4776a1
mov ecx, dword [ebp - 4]
sub edx, eax
mov eax, dword [ebp - 0xc]
mov dword [ebp - 0x4c], edx
add al, 0x1e
mov byte [ecx], al
mov eax, edx
sar eax, 8
mov byte [ecx + 1], al
mov byte [ecx + 2], dl
add ecx, 3
jmp 0x4776c3
mov ecx, dword [ebp - 4]
mov ebx, dword [ebp - 0x14]
mov byte [ecx], bl
jmp 0x477525
mov eax, dword [ebp + 0x10]
mov dword [eax], esi
jmp 0x477759
mov eax, dword [ebp + 0x10]
mov dword [eax], 0x2b
jmp 0x477759
mov eax, dword [ebp + 0x10]
mov dword [eax], 0x28
jmp 0x47771c
mov eax, dword [ebp + 0x10]
mov dword [eax], 0xf
jmp 0x47771c
mov eax, dword [ebp + 0x10]
mov dword [eax], 0xf
jmp 0x477759
mov eax, dword [ebp + 0x10]
mov dword [eax], 0x26
jmp 0x477759
mov dword [ebx], 0x1b
jmp 0x47771c
mov eax, dword [ebp + 0x10]
mov dword [eax], 0x1e
mov ebx, dword [ebp - 8]
jmp 0x477759
mov eax, dword [ebp + 0x10]
mov dword [eax], 0x1f
jmp 0x477759
mov dword [ebx], 7
jmp 0x47771c
cmp byte [ebx + 1], 0x3a
push 0x1f
pop eax
push 0xd
pop ecx
cmove eax, ecx
mov ecx, dword [ebp + 0x10]
mov dword [ecx], eax
jmp 0x477759
mov eax, dword [ebp + 0x10]
mov dword [eax], 0xb
jmp 0x477759
mov dword [esi], 9
xor eax, eax
mov ecx, dword [ebp + 0xc]
pop edi
pop esi
mov dword [ecx], ebx
pop ebx
mov esp, ebp
pop ebp
ret